【发布时间】:2022-12-18 03:34:50
【问题描述】:
我有一个简单的正则表达式模式,python re 库声称它无法解释。具体是? + 一些字符。这是我试图编译的正则表达式模式:
- (?>\d\d){1,2}
完整代码sn-p:
import re
restr = r"\(?>\d\d){1,2}"
string = "12"
regex = re.compile(restr)
regex.search(string)
错误返回:
File "C:\Users\~USER~\AppData\Local\Programs\Python\Python39\lib\sre_parse.py", line 823, in _parse
raise source.error("unknown extension ?" + char,
re.error: unknown extension ?> at position 1
我到处搜索,似乎找不到问题的原因。非常感谢所有帮助。我已经阅读了有关 re 标志和不同匹配方法的信息,但它只是不起作用的字符。
【问题讨论】:
-
?在正则表达式中有特殊含义所以不应该转义 -\? -
您使用的是什么 Python 版本?
Python supports atomic grouping and possessive quantifiers starting with Python version 3.11. -
使用版本 3.9。刚刚更新到 3.11,它工作得很好。阅读 3.11 的注释,你是对的。请发布您的建议作为答案,我会将其标记为解决方案