ruby正则表达式找到嵌套匹配

时间:2012-09-04 20:41:56

标签: ruby regex-greedy non-greedy

我的正则表达式是

/a .*programming .*test .*this/i

和测试字符串是

This is a test This is a programming test This is a programming test in any language

我得到的比赛是

a test This is a programming test This

但还有另一个较短的匹配“编程测试这个”,这个正则表达式无法找到,我使用扫描方法找到所有匹配但是甚至无法捕获它。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

RegexP是一件非常复杂的事情!你真的需要知道你的字符串的哪些部分对于匹配是关键的,哪些不是。有很多种方法可以完成比赛,但要猜出你真正想要的东西并不容易:

s = "This is a test This is a programming test This is a programming test in any language"
s.match(/a [^a]*programming .*test .*this/i)[0]
 => "a programming test This"