gpt4 book ai didi

python - 解决 python 正则表达式错误^H^H^H...咳咳...需要错误功能

转载 作者:行者123 更新时间:2023-11-28 21:57:40 29 4
gpt4 key购买 nike

我有一些生成正则表达式的代码。那么下面的表达式实际上是:

^(?:\s*((exclude|include|hide|show|protect|risk|dir-merge|merge)),\s*((-|+|H|S|P|R|:|.))\s*(\S+)|\s*,?\s*((-|+|H|S|P|R|:|.))\s*(\S+)|\s*((exclude|include|hide|show|protect|risk|dir-merge|merge))\s*(\S+))$

它看起来很复杂,但它本质上是为了匹配文件中的以下行:

dir-merge, :    /some/file
merge, . /some/other/file
. /another/file
, : /yet/another/file

因此导致 Python 正则表达式编译错误的 \s* 匹配项。

有没有更好的方法来匹配单个表达式中的这些组合而不匹配 nothing block ?

已回答

除了答案之外,值得一提的是,我通过构造以下表达式来解决此问题:

^(?:\s*(exclude|include|hide|show|protect|risk|dir-merge|merge),\s*([-+HSPR:.])\s*(\S+)|\s*,?\s*([-+HSPR:.])\s*(\S+)|\s*(exclude|include|hide|show|protect|risk|dir-merge|merge)\s*(\S+))$

细微差别是从 (-|+|H|S|P|R|:|.)([-+HSPR:.])。方括号具有转义字符的作用,防止 |+ 表达式匹配 nothing

最佳答案

您在这里似乎遇到了不止一个问题。 “无须重复”可以很容易地重现:

>>> re.compile("|+")
Traceback (most recent call last):
...
sre_constants.error: nothing to repeat

+ 表示“匹配前面的一个或多个”,但在 + 之前是一个空字符串。你可能想在几个地方说 \+ 而不是普通的 +

关于python - 解决 python 正则表达式错误^H^H^H...咳咳...需要错误功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19528515/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com