正则表达式以两个选项中的第一个结束

时间:2010-06-09 12:46:01

标签: ruby regex

在Ruby中,我试图从文本中提取一个以“who”开头的字符串,并以“)”或“when”的 first 结束(但不包括“)”或“何时”)。

我尝试了以下内容:

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

在找不到“when”和“)”的情况下失败。

有什么想法吗?

非常感谢

2 个答案:

答案 0 :(得分:2)

您需要让.*部分非贪婪。

试试这个正则表达式:

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

答案 1 :(得分:0)

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

我认为应该这样做。 $ 1将是你的字符串。