Регулярное выражение: сопоставить фиксированную фразу и следующие слова / символы и остановиться на определенном слове (И) - PullRequest
0 голосов
/ 26 ноября 2018

Вот пример данных из истории JBehave, из которого я хочу извлечь:

And we validate that the following occurrences for event 123456 and source PLAYER are saved in Database:
| PLAYER | GAME     | 
| 1      | FOOTBALL |

And we validate that the following messages for event 123456 and source PLAYER are sent in Other Database:

Использование фиксированной фразы:

 And we validate that the following occurrences for event 123456 and source PLAYER are saved in Database:

Я хочуиспользовать это предложение в качестве отправной точки моего поиска и получить все до следующего слова И

Ожидаемый результат:

And we validate that the following occurrences for event 123456 and source PLAYER are saved in Database:
| PLAYER | GAME     | 
| 1      | FOOTBALL |

Я пробовал следующее выражение:

\w*:[^And]*

Тем не менее, я не выяснил, в какой части я соответствую, используя фиксированную фразу.

1 Ответ

0 голосов
/ 26 ноября 2018

Вы можете использовать

.*:(?s).*?(?=\bAnd\b|$)

См. Демоверсию regex

Подробности

  • .*- любое количество любых символов, кроме символов разрыва строки, как можно больше
  • : - двоеточие
  • (?s) - теперь все . справа будут соответствовать любомусимволы, включая символы разрыва строки
  • .*? - любое количество любых символов, кроме символов разрыва строки, как можно меньше
  • (?=\bAnd\b|$) - положительный прогноз, обеспечивающий использование целого словаAnd или конец строки непосредственно справа от текущего местоположения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...