正则表达式的基本写法:
/需要匹配的内容/
最简单的就是/Aa1/,匹配一个"Aa1"字符串。
如果想要匹配多个字符,最基本的写法就是
/a{想要匹配的数量}/
如果想要匹配一个确定的数量,比如3,就写成:/a{3}/
如果想要匹配的是一个范围,比如1-3,就写成:/a{1,3}/
如果想要匹配的是一个一边确定的范围,就写成:/a{,3}/或者是/a{1,}/
针对常用的数量匹配模式,有三个快捷符号:
+表示至少有1个(+可以理解为正数,因此至少大于0)
*表示也许有也许没有(*经常做通配符用,可以结合这点去理解)
?表示,也许有1个,也许没有(?代表不确定有没有,把有理解为1,把无理解为0)
如果想匹配的是多个字符,比如说abc,那么,可以用()将abc包起来
比如,/(abc)+/表示有至少1个abc的组合
那如果要匹配的是一个不确定,但是知道范围的字符,可以通过[]来代替
例如,要匹配的是个数字,那就是[0-9]
要匹配的是一个小写字母,那就是[a-z]
要匹配的是一个大写字母,那就是[A-Z]
如果是个数字或者字母,要注意顺序[0-9a-zA-Z]
相应的,也有快捷符号对应这些常用的范围
例如:
/d代表数字
/w代表数字或者字母
/s代表空白,例如\r\t\n\f
相应的,对应字母的大写代表反之
/D代表非数字
/W代表非数字或者字母
/S代表非空白
理解了这些,基本的正则表达式就会写了。还有一个就是关于匹配边界的问题。
^代表字头,$代表字尾,这个没有太好的方法帮助理解,但是可以使用另一种写法
\A代表字头,\Z代表字尾(仅代表Perl)
或者使用\b,把\b放前面就表示前面的边界,放后面就表示后面的边界,放两边自然就是两边的边界
还有一个\B,表示的是内部,其实就是非边界,可以简单理解为跟\b相反
对于比较特殊的类型匹配,比如说不在同一个范围的多个类型,例如Zt6和和g2F,必须匹配这两种,这个时候就要用到"|"这个符号了
在逻辑判断中,“|”代表或,在正则表达式中,这个也代表或,上面的例子其实可以写成/(Zt6)|(g2F)/,这样,就能顺利匹配到这两种组合了。
还有可能需要了解的就是几个匹配模式选项了:
g:匹配所有可能的模式,这个是模糊查找的时候,防止只匹配到第一个值就退出 general
i:忽略大小写,ignore case
m:将匹配串视为多行,进行跨行匹配的时候使用
s:将待匹配串视为单行,进行跨行匹配的时候使用
ms两者的区别在于,m将表达式视为每个单元之间有个\n?,而s将待匹配对象视为单行字符串,即换行用/n代替的一行字符串
x:忽略表达式中的空格,应该是方便那些习惯打空格的人使用
这些匹配模式选项的用法就是将对应的字母接在正则表达式的末尾,可以结合使用
还有一些没提到的建议需要使用的人士自行学习。