怎么样使用Ruby程序中正则表达式

Python014

怎么样使用Ruby程序中正则表达式,第1张

(1)创建:简单地用//即可创建,也可也用re = Regexp.new("正则表达式"),创建

(2)匹配:正则表达式 =~ 字符串,匹配成功返回字符串位置,不成功返回nil,可也用!~表示不匹配

(3)正则表达式选项:imx,i:忽略大小写、m可以匹配多行,x正则表达式中可以有空格、#注释,不会当成要匹配的内容。如 /NiHao/i =~ "nihao" 返回0

(4)捕获:用(),打印第几个捕获可以用 p $1,$2……,$&表示匹配整个正则表达式的字串部分。&` 返回原字符串匹配部分之前的字符串,&' 返回原字符串中匹配部分之后的字符串

(5)正则替换:sub替换一次,gsub全部替换。scan不替换,但是可以像gsub一样找到全部能匹配的部分,用来对其进行处理

a =“world”

a["w"] = w

a["s"] = nil

你可以参考ruby string 的官方文档,基本上string 所有自带的方法都有,并且有例子

http://ruby-doc.org/core-2.1.2/String.html#method-i-match

第一个*? 是连起来用的,表示非贪婪匹配,就是尽量少地匹配

第二个的正则是这样用的,\z的意思是 字符串结尾(类似$,但不受处理多行选项的影响)

time\z