如何使用regexpformysql匹配字母的偶数或奇数

如何使用regexpformysql匹配字母的偶数或奇数,mysql,regex,Mysql,Regex,有人知道如何在mysql中使用regexp匹配字母的偶数和奇数吗?我需要像偶数个a,然后是奇数个G,然后至少匹配一个TC?例如:acgtccaaagggtcatg将匹配。这是用于dna测序的东西你可以试试(AA)*(GG)*GTC之类的东西 我想那就行了。不知道mysql是否有特殊语法,尽管偶数个a可以表示为(AA)+(一个或多个AA;因此它将匹配AA,AAAA,AAAAAA…)。奇数个G可以表示为G(GG)*(一个G,后面跟着零个或多个GG,这样就可以匹配G,GGG,ggggggg…) 把这些

有人知道如何在mysql中使用regexp匹配字母的偶数和奇数吗?我需要像偶数个a,然后是奇数个G,然后至少匹配一个TC?例如:acgtccaaagggtcatg将匹配。这是用于dna测序的东西

你可以试试(AA)*(GG)*GTC之类的东西


我想那就行了。不知道mysql是否有特殊语法,尽管偶数个a可以表示为
(AA)+
(一个或多个
AA
;因此它将匹配AA,AAAA,AAAAAA…)。奇数个G可以表示为
G(GG)*
(一个
G
,后面跟着零个或多个
GG
,这样就可以匹配G,GGG,ggggggg…)

把这些放在一起,你就得到了:

/(AA)+G(GG)*TC/
但是,由于正则表达式引擎将尝试尽可能多地匹配,因此该表达式实际上将匹配
AAAGGGTC
(即
AAGGGTC
)的子字符串!为了防止出现这种情况,可以使用确保第一个
a
前面的字符不是另一个
a

/(?<!A)(AA)+G(GG)*TC/

但请注意,使用此模式,如果在字符串开头未找到该模式,则将捕获一个额外字符,因此,如果第一个字符不是A,则必须切掉它。

对我不起作用,因为我做了类似的操作,以测试它是否会为meselect'aaaaaaggggtca'regexp'(AA)*(GG G)*G'返回false;0是偶数
/(^|[^A])(AA)+G(GG)*TC/