2016-09-12 3 views
1

Ich habe eine Zeichenfolge wie diese, wie Wörter in einem String zu regex

test = "row-even row-dd testing" 

Jetzt möchte ich nur Worte erhalten, die mit row- beginnt.

Ich verwendete test = ~ /row.-(.*)/ aber es brachte mir wieder 0.anyidea, wie kann ich das tun?

Antwort

1

0 ist die Startposition des gefundenen Musters.

Versuchen Sie stattdessen:

puts test.scan(/row-\w+/) 
+0

Dank, kann ich jetzt am Ende hinzufügen .uniq, um nur die einzigartigen Charaktere zu bekommen – Raaz

+0

Sie eindeutige Worte bekommen – seph

2
r =/
    (?<=\A|\s) # match start of string or space in a positive lookbehind 
    row-   # match string 'row-' 
    [[:alpha:]]+ # match one or more letters 
    (?=\s|\z) # match a space or end of string in a positive lookahead 
    /x   # free-spacing regex definition mode 

"row-even row-dd testing".scan(r) #=> ["row-even", "row-dd"] 
"borrow-even row-dd testing".scan(r) #=> ["row-dd"] 
"row-even row-dd1 testing".scan(r) #=> ["row-even"]