过去两个小时我一直坚持这个正则表达式。 你怎么写一个正则表达式,其中每对连续的'E'出现在每对连续的'O'之前。例如,您的DFA应接受字符串“GOODBOY”,“FEEDME”,“HELLO”和“FEEDMEGOOD”,但不接受“LOOKITSDEEP”。
我是regex的新手,我使用的是现代的html正则表达式机器。
至于我迄今为止所尝试的内容,我知道它会接受4个案例:
但是,它不接受以下情况:
我试图做的是做一个“不”。案例编号为5的案例以及我提出的案例是:
[^[A-Z]*(OO)+[A-Z]*(EE)+]
然而,这似乎不起作用:(
帮助真的很感激!!!
答案 0 :(得分:1)
你正走在正确的轨道上,试图匹配"不应该"案例并反转结果。它主要是您缺少的语法。以下是我将如何做到这一点:
^(?!.*OO.*EE)[A-Z]*$
(?!...)
是一个负面的预测;它意味着"如果此时可以匹配此表达式,则失败。" ^
将匹配锚定在字符串的开头;没有它,正则表达式引擎将继续尝试匹配从每个连续位置开始。 [A-Z]*$
确保字符串完全由大写字母组成。