2010-09-28 65 views
1

我想通过正则表达式在文本行中查找给定的单词,但搜索不应只查找整个单词,还要查找实例这个词是前缀还是后缀,或者是其他词。例如(我不是很有创造力的例子..但它应该得到的重点):我想用红宝石搜索文本行中的给定单词

寻找​​在“我住在常绿的街道,因为绿色与绿树成绿色,我喜欢绿色乳胶$绿色运营^ 2个$”

应该返回:

evergreen, green, greentown, tree-greenery, green-latex, $green-operator^2$

回答

3

的扫描方法的工作原理。该模式查找运行中具有绿色字母的非空格字符。

irb> s = "I live in evergreen street because " + 
     "green is greentown with tree-greenery." + 
     " I like green-latex $green-operator^2$" 

irb> s.scan(/\S*green\S*/) 
=> ["evergreen", "green", "greentown", 
    "tree-greenery.", "green-latex", 
    "$green-operator^2$"] 
+0

FYI,'[^ \ S]'可以更简洁地写作'\ S'。 – sepp2k 2010-09-28 17:49:21

+0

固定,谢谢@ sepp2k – 2010-09-28 19:06:01

1
irb> s = "I live in evergreen street because " + 
irb*  "green is greentown with tree-greenery." + 
irb*  " I like green-latex $green-operator^2$" 

irb> s.split.grep /green/ 
=> ["evergreen", "green", "greentown", "tree-greenery.", "green-latex", "$green-operator^2$"]