2010-12-21 18 views
0

Ich habe diese Zeichenfolge: "51. etwas Ding:"
und möchte nur "etwas" mit reg ex in Ruby extrahieren. Kann mir jemand in die richtige Richtung zeigen, um zwischen einem übereinzustimmen? und a: und alles andere verwerfen?Ruby RegEx to Match zwischen. und:

Antwort

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

genial! Danke, ich muss mich wirklich anschnallen und reg ex lernen. Eines Tages... – Danny

1

Dies sollte es tun:

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

Wenn Sie vermeiden möchten, führen und Räume im Spiel Hinter, können Sie diese verwenden:

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

Edit: ich gerade überprüft und festgestellt, dass Ruby Lookbehind, das hier verwendet wird, nicht unterstützt. Alternativ können Sie diese und nehmen Sie die Einnahme des regex als Ergebnis verwenden:

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

Die erste Lösung aufgeführt hier arbeitet jetzt als Rubin derzeit unterstützt Lookbehind. –