3
p = re.compile("[AG].{2}[ATG|ATA|AAG].{1}G")
regex_result = p.search('ZZZAXXATGXGZZZ')
regex_result.group()
'AXXATG'
我期待改为AXXATGXG
。Python正则表达式在第一个“|”后停止比赛
p = re.compile("[AG].{2}[ATG|ATA|AAG].{1}G")
regex_result = p.search('ZZZAXXATGXGZZZ')
regex_result.group()
'AXXATG'
我期待改为AXXATGXG
。Python正则表达式在第一个“|”后停止比赛
使用分组构造(...)
而不是字符类[...]
围绕替代:
p = re.compile("[AG].{2}(?:ATG|ATA|AAG).G")
^^^^^^^^^^^^^^^
的(?:ATG|ATA|AAG)
比赛3个序列:要么是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
美丽的解释。你救了我的一天! –