我是正则表达式的新手,我试图学习它,我遇到了这个问题
正则表达式 - Let the alphabet = {a,b}.
为:
All strings that do not have the substring 'ab'
他们是如何得到答案b*a*
的?我想到了B和a之间的Kleene星,你可以有ab,订单也很重要吗?
我在这里找到了它:http://courses.washington.edu/css448/zander/Notes/reg343ans.txt。
答案 0 :(得分:3)
在正则表达式中,顺序很重要。
b*a*
表示0或更多'b'后跟0或更多'a'。 (这假设正则表达式搜索锚定到字符串的开头和结尾 - 在大多数正则表达式语法中,这实际上将写为:^ b * a * $)
所以,它会匹配
这是一个奇怪的问题,但他们是正确的。如果你只有a和b作为可能的字符,那么b后跟b的任何序列都有子串'ab'