我正在努力寻找这两种情况的所有发生 "_"+digit 或 "^"+digit ,使用正则表达式 ((_\^)[1-9])
"_"+digit
"^"+digit
((_\^)[1-9])
我期待回来的团体(如 "X_2ZZZY^5" 会是 [('_2'), ('^5')] 但我却得到了 [('_2', '_'), ('^5', '^')]
"X_2ZZZY^5"
[('_2'), ('^5')]
[('_2', '_'), ('^5', '^')]
我的正则表达式不正确吗?还是我对返回内容的期望不正确?
非常感谢
**我的原稿被重新使用了 (_|\^) 这是不正确的,本应如此 (_\^) --问题已作相应修正
(_|\^)
(_\^)
你的正则表达式中有两个组,所以你得到了两个组。你需要至少匹配下面的1个数字。
试试这个:
([_\^][1-9]+)
看到它在行动吗 here
要求特殊字符后面至少有1位数字(1-9) _ 或 ^ ,放置在单个捕获组中:
_
^
import re text = "X_2ZZZY^5" pattern = r"([_\^][1-9]{1,})" regex = re.compile(pattern) res = re.findall(regex, text) print(res)
返回:
['_2', '^5']