2015-04-07 7 views
0

Я застрял в этом регулярном выражении последние два часа. Как бы вы написали регулярное выражение, в котором каждая пара последовательных «E» встречается перед каждой парой последовательных «O». Например, ваш DFA должен принимать строки «GOODBOY», «FEEDME», «HELLO» и «FEEDMEGOOD», но не «LOOKITSDEEP».Выражение REGEX для последовательных символов

Я довольно новичок в регулярном выражении, и я использую современную машину с регулярным выражением html.

Что касается того, что я пытался до сих пор, я знаю, что он будет принимать 4 случая:

  • регистра 1: есть нет СЭ или OO-х
  • случай 2: не является ОО, но не EE
  • случай 3: существует EE, но не OO
  • случай 4: есть EE перед ОО

Однако, оно не принимает следующий случай:

  • кейс 5: если есть OO перед EE.

То, что я пытался сделать, это сделать «не» случай с футляром номером 5, и что я пришел вверх с:

[^[A-Z]*(OO)+[A-Z]*(EE)+] 

Однако, это не похоже на работу: (

помощь будет действительно оценили !!!

+0

Пожалуйста, покажите нам некоторые вещи, которые вы пробовали. – axblount

+4

Если вы были застряли ... в течение последних двух часов *, мне показалось бы, что у вас есть хотя бы несколько ваших усилий, которые не были включены в ваш вопрос, нет? Когда вы [править], чтобы включить их, вы также можете указать информацию о том, какой механизм регулярного выражения вы используете, поскольку разные двигатели имеют разные возможности и различия в синтаксисе. –

+0

Я добавил свою работу! –

ответ

1

вы находитесь на правильном пути, пытаясь соответствовать «не должны» дело и переворачивая результат. Это в основном синтаксис вам не хватает. Вот как Я бы это сделал:

^(?!.*OO.*EE)[A-Z]*$ 

(?!...) - негативный взгляд; это означает, что «если это совпадение с этим выражением на данный момент, не получится». ^ привязывает совпадение в начале строки; без этого, двигатель регулярных выражений будет продолжать пытаться соответствовать, начиная с каждой последовательной позиции. [A-Z]*$ гарантирует, что строка состоит из заглавных букв.

Смежные вопросы