什么是正则表达式?
正则表达式是匹配某字符串的模板。
简易模式
如果匹配$的内容,只用将模式写在/中即可,例:
$ = “yssddd”;
if (/sd/){
print “it matched”;
}
匹配多个内容:(.)是任何单字符的通配符,如果使他失去元字符的意义则使用.使他失去特殊作用。
用来匹配前面的内容零次或者多次。例如:/fredbadd/能够匹配fred和badd之间有任意数目d的串。
.*用来匹配任意字符无限多次,
+会匹配前一个条目一次以上,通俗的说就是:算上刚才所说的,再加上任意次重复。
?与前面类似,表示前面的条目是可有可无的,通俗的说就是:刚才所说的,有没有都行。
模式分组
使用()来进行分组,例如/(fred)+/会匹配fredfredfredfred这样的字符串。/(fred)/可以用来匹配hello等字符串,因为代表可以代表重复0次。
反向引用:(.)\1表示需要匹配连续出现的俩个相同的字符,
择一匹配
|可以读成或,意思是左边或右边匹配都可以,
字符集
字符集是指一串可能出现的字符集合,在【】内来表示。只匹配单个字符。我们有时候需要指定字符集外的字符,使用来表示,[def]会匹配除def外的任意字符
字符集简写:[0-9]简写为\d.\w表示[A-Za-z0-9_]
反义简写:我们可以使用\D,\W,\S来表示[\d],[\w],[^\s].