2009年5月4日星期一

单词的检索

查找在某一字符串中是否含有匹配的单词. 如: 当我们想查找单词 spec 而又不想将 specifsction 一起查找出来时, 我们将要用到正则表达式的 \b (要注意是小写字母b).



p /\bspec\b/ =~ "Ruby spec"")    #=> 5
p /\bspec\b/ =~ "Ruby specifsction"")    #=> nil


因为一个汉字由4字节构成, 所以使用正则表达式的 \b 进行单词检索的方法, 只对英 文单词有效.


p /字符\b/ =~ "字符 abc"    #=> nil



单词的查找
说是单词的查找, 但单词的概念却是很模糊的. 如下提供了三种方法:


# 使用 Ruby 的正则表达式 \w 来实现查找

p " This is \ta 2pen.".scan(/\w+/)
  #=> ["This", "is", "a", "2pen"]



# 使用 Ruby 的正则表达式 /[a-z]+/i 来实现查找

p " This is \ta 2pen.".scan(/[a-z]+/i)
  #=> ["This", "is", "a", "pen"]



# 使用 Ruby 的String#split 方法来实现查找

p " This is \ta 2pen.".split(nil)
  #=> ["This", "is", "a", "2pen."]

没有评论:

发表评论