有谁知道如何在mysql中使用正则表达式匹配偶数和奇数字母?我需要匹配偶数个 A,后跟奇数个 G,然后至少一个 TC?例如:acgtccAAAAGGGTCatg 将匹配。这是 DNA 测序的东西
偶数个 A 可以表示为(AA)+
(一个或多个实例AA
;所以它将匹配 AA、AAAA、AAAAAA...)。奇数个 G 可以表示为G(GG)*
(one G
后跟零个或多个实例GG
,这样就会匹配 G、GGG、GGGGG...)。
把它们放在一起,你就得到了:
/(AA)+G(GG)*TC/
然而,由于正则表达式引擎会尝试尽可能多地匹配,因此该表达式实际上会匹配AAAGGGTC
(ie. AAGGGTC
)!为了防止这种情况,您可以使用消极回顾 http://www.regular-expressions.info/lookaround.html确保第一个之前的字符A
不是另一个A
:
/(?<!A)(AA)+G(GG)*TC/
...除了 MySQL 不支持其正则表达式中的环视。
您可以做的是指定模式从字符串的开头开始(anchored http://www.regular-expressions.info/anchors.html by ^
),或者前面有一个不是 A 的字符:
/(^|[^A])(AA)+G(GG)*TC/
但请注意,使用此模式,如果在字符串开头找不到该模式,则会捕获一个额外的字符,因此如果第一个字符不是 A,则必须截掉第一个字符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)