2010-12-21 79 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