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

Python011

怎么样使用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一样找到全部能匹配的部分,用来对其进行处理

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

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

time\z

一些补充:脚本是ruby,领会精神就行了……

/regexp/m 多行模式正则表达式

/regexp/ 单行模式正则表达式

=~ 若匹配返回第一个匹配的位置,不匹配则返回nil

$1,$2 反向引用(分别对应第1,2个括号)

string[start...end] 截取字符串从start到end-1的那段dup 复制sub,gsub,sub!,gsub! 字符串替换,感叹号表示替换自身,没感叹号则返回新串正则表达式语法全世界都大同小异,就不解释了……