gpt4 book ai didi

python - sre_constants.error : multiple repeat at position 2

转载 作者:太空宇宙 更新时间:2023-11-03 11:42:13 28 4
gpt4 key购买 nike

我试图匹配 + 之间的所有子字符串和 h ,例如 +abcd1234h .

代码如下:

match = re.match(r'.*+(.*)h.*',line)

当我运行我的代码时,发生如下错误:
File "C:\Program Files\Python\Python36\lib\re.py", line 172, in match
return _compile(pattern, flags).match(string)

File "C:\Program Files\Python\Python36\lib\re.py", line 301, in _compile
p = sre_compile.compile(pattern, flags)

File "C:\Program Files\Python\Python36\lib\sre_compile.py", line 562, in compi
le
p = sre_parse.parse(p, flags)

File "C:\Program Files\Python\Python36\lib\sre_parse.py", line 855, in parse
p = _parse_sub(source, pattern, flags & SRE_FLAG_VERBOSE, 0)

File "C:\Program Files\Python\Python36\lib\sre_parse.py", line 416, in _parse_
sub
not nested and not items))

File "C:\Program Files\Python\Python36\lib\sre_parse.py", line 619, in _parse
source.tell() - here + len(this))

sre_constants.error: multiple repeat at position 2

好像是正则 express 错误,怎么解决? .

最佳答案

通过逃避 + :

>>> re.match(r".*\+(.*)h.*", "+abcd1234h").groups()
('abcd1234',)

在正则表达式中, +具有特殊含义(匹配一个或多个前面的字符)。显然你知道 *表示匹配零个或多个。

因此,异常会告诉您究竟出了什么问题……表达式包含“多次重复”( *+ )

笔记:

没有必要使用 re.match使用前导和尾随匹配规则,您可以更简洁地执行此操作:
>>> re.search(r"\+(.*)h", "+abcd1234h").groups()
('abcd1234',)

关于python - sre_constants.error : multiple repeat at position 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47692241/

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