(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! 字符串替换,感叹号表示替换自身,没感叹号则返回新串正则表达式语法全世界都大同小异,就不解释了……