2010-12-21 80 views
0

我有这样的字符串:“51.有些事情:”
,并希望提取在红宝石使用REG前“一些事情”。任何人都可以指出我在正确的方向来匹配一个。和一个:并放弃一切?Ruby RegEx之间匹配。和:

回答

1
'51. some thing:'.sub /.*\. *([^:]*).*/, '\1' 
=> "some thing" 
+0

太棒了!谢谢,我真的需要屈服并学习reg ex。一天... – Danny 2010-12-21 02:25:54

1

这应做到:

(?<=\.).+?(?=:) 

如果你想避免领导和在比赛中尾随空格,您可以使用此:

(?<=\.\s*)\S.*?(?=\s*:) 

编辑:我只是检查,发现Ruby不支持在这里使用的lookbehind。或者,你可以使用这个,走正则表达式的捕获的结果:

\.\s*(\S.*?)\s*: 
+0

这里列出的第一个解决方案现在工作作为当前的Ruby支持回顾后。 – 2013-08-30 06:23:54