(2)匹配:正则表达式 =~ 字符串,匹配成功返回字符串位置,不成功返回nil,可也用!~表示不匹配
(3)正则表达式选项:imx,i:忽略大小写、m可以匹配多行,x正则表达式中可以有空格、#注释,不会当成要匹配的内容。如 /NiHao/i =~ "nihao" 返回0
(4)捕获:用(),打印第几个捕获可以用 p $1,$2……,$&表示匹配整个正则表达式的字串部分。&` 返回原字符串匹配部分之前的字符串,&' 返回原字符串中匹配部分之后的字符串
(5)正则替换:sub替换一次,gsub全部替换。scan不替换,但是可以像gsub一样找到全部能匹配的部分,用来对其进行处理
通配符匹配规则:
* :任意数量的字符
?:任何单个字符
正则 匹配规则:
* 前面元素出现0次以上
. 匹配任何单个字符
? 前面元素出现0次或1次
+ 前面元素出现1次以上
^ 表示开头。
$ 表示结尾。
.* 表示0个以上的任意字符。
.+ 表示1个以上的任意字符。
[ ] 范围描述符。[a-z]表示从a到z之间的任意一个。
\w 英文字母和数字。即[0-9 A-Z a-z]。
\W 非英文字母和数字
\s 空字符,即[\t\n\r\f]。
\S 非空字符。
\d 数字,即[0-9]。
\D 非数字。
\b 词边界字符(在范围描述符外部时)
\B 非词边界字符
\b 退格符(0x08)(在范围描述符内部时)
{m,n} 前面元素最少出现m次,最多出现n次
| 或者,如.(你|我|他),爱你、爱我、爱他这三个词语都会被匹配到(爱对应括号前面那个点,你我他则是括号里的或)
( ) 子文本,如(\d+)([你|我|他]),取子匹配文本(1,1)取到的就是第一个圆括里面的内容。
其他字符 该字符本身
您可以将正则匹配理解为特殊的关键词搜索,您可以使用某些符号来代替一个或多个未知的内容。
第一个*? 是连起来用的,表示非贪婪匹配,就是尽量少地匹配第二个的正则是这样用的,\z的意思是 字符串结尾(类似$,但不受处理多行选项的影响)
time\z