示例:ATG
我想用这些标准捕获所有字符串:
开始:TAA
跟随3x字符集:A或C或G或T
结束:TAG
或TGA
或ATGCCCTAA
例如:ATGTTTTAG
,/[ACGT]*((ATG)(([ACGT]){3})+(TAA|TAG|TGA))[ACGT]*/g
我在这里有一个正则表达式:ATGTTTTAG
,但它只匹配上一个ATGCCCTAA
而不是ATGCCCTAA
。我不知道为什么?
请帮助我编写与ATGTTTTAG
和{{1}}匹配的模式。
以下是在线示例: https://regex101.com/r/iO8lF9/1
答案 0 :(得分:5)
此正则表达式效果良好/(ATG(?:A{3}|C{3}|G{3}|T{3})(?:TAA|TAG|TGA))/g
正如您在此处所见:https://www.regex101.com/r/gZ0zA9/2
我希望它有所帮助
答案 1 :(得分:0)
使用反向引用可以缩短你的正则表达式:
ATG([AGCT])\1{2}(?:TGA|TA[AG])
它在[AGCT]
之后与ATG
匹配,并将其分组为捕获的组#1。接下来我们匹配\1{2}
以确保相同的字母重复3次。
答案 2 :(得分:-1)
尝试...
^ATG[AGCT]{3}(TAA|TAG|TGA)$
答案 3 :(得分:-1)
我使用这种模式并且它有效,谢谢大家的帮助。 /(ATG(?:A {3} | C {3} | G {3} | T {3})(:?TAA | TAG | TGA))/ G