字符串abxba的正则表达式

时间:2013-03-08 04:17:38

标签: regex

我需要为自学期间在一些讲义中找到的问题写一个正则表达式。这个正则表达式匹配abxba形式的字符串,其中x是a,b的字符串,而c不包含ba作为子字符串。到目前为止我所拥有的是^ab(a+c+b+|a+b+c+|b+c+a+|c+a+b+)ba$,但它显然是不完整的。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

你可以试试这个

^ab(?!.*ba.*ba$)(?=.*a.*ba$)(?=.*b.*ba$)(?=.*c.*ba$)[abc]+ba$
    ----------- ------------
         |           |->match further only if there's atleast 1 a
         |->match further only if there's no ba

答案 1 :(得分:0)

你必须写一个正则表达式吗?您可以使用^ab([a-c]*)ba$来抓取字符串的中间部分,然后在中间运行一些检查,例如确保它至少包含一个a,b和c,并确保它不包含ba。< / p>

编辑:更好的是,您可以完全跳过正则表达式,只需执行上述所有检查,添加检查以确保它以ab开头并以ba结尾。

答案 2 :(得分:0)

我使用否定前瞻来尝试这个正则表达式:

^ab(a|b(?!a)|c)+ba$

它匹配此字符串abbcabcabbbbcccaaaaaaba但不匹配:abbcabcabbabbcccaaaaaaba