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
美麗的解釋。你救了我的一天! –