Closed. This question is not reproducible or was caused by typos 。它目前不接受答案。
想改善这个问题吗?更新问题,使其成为 Stack Overflow 的 on-topic。
4年前关闭。
Improve this question
我期待的是
请注意
Python:
见 IDEONE demo
想改善这个问题吗?更新问题,使其成为 Stack Overflow 的 on-topic。
4年前关闭。
Improve this question
p = re.compile("[AG].{2}[ATG|ATA|AAG].{1}G")
regex_result = p.search('ZZZAXXATGXGZZZ')
regex_result.group()
'AXXATG'
我期待的是
AXXATGXG
。 最佳答案
在备选方案周围使用分组结构 (...)
而不是字符类 [...]
:
p = re.compile("[AG].{2}(?:ATG|ATA|AAG).G")
^^^^^^^^^^^^^^^
(?:ATG|ATA|AAG)
匹配 3 个序列:a ATG
或 ATA
或 AAG
。 [ATG|ATA|AAG]
字符类匹配 1 个字符,即 A
、 T
、 G
或 |
。请注意
{1}
是多余的,可以删除。Python:
import re
p = re.compile("[AG].{2}(?:ATG|ATA|AAG).G")
regex_result = p.search('ZZZAXXATGXGZZZ')
print(regex_result.group())
# => AXXATGXG
见 IDEONE demo
关于Python Regex 在第一次 "|"匹配后停止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38622667/
10-13 03:38