Регулярное выражение, заканчивающееся первым из двух вариантов - PullRequest
1 голос
/ 09 июня 2010

В Ruby я пытаюсь извлечь из текста строку, начинающуюся с «кто» и заканчивающуюся first либо «)», либо «когда» (но не включает ")" или "когда").

Я пробовал следующее:

who.*(?=when\b|\))

, что не соответствует случаю, когда он находит "когда" и ")".

Есть идеи?

Большое спасибо

Ответы [ 2 ]

2 голосов
/ 09 июня 2010

Вы должны сделать свою .* часть нежадной.

Попробуйте это регулярное выражение:

who.*?(?=when\b|\))
0 голосов
/ 09 июня 2010

(who.*?)(when|\))

Это должно сделать это, я думаю. $ 1 будет вашей строкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...