Регулярное выражение, заканчивающееся первой из двух опций

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

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

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

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

Какие-либо идеи?

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

1
задан Alex Hamilton 9 June 2010 в 12:46
поделиться

2 ответа

Вам необходимо сделать вашу часть . * нежадной.

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

who.*?(?=when\b|\))
2
ответ дан 2 September 2019 в 23:55
поделиться

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

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

0
ответ дан 2 September 2019 в 23:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: