正则表达式的作用主要有三:
验证数字是否符合特定模式;
利用正则表达式找到特定文本而后删除或者替换文本;
按模式匹配在字符串中查找查找匹配子字符串。
正则表达式就是有普通字符以及特殊字符(称为元字符)组成的文字模式。元字符前面的字符称为前导符,元字符按功能又分为限定符、定位符等类别,下面对常用的元字符进行列表说明。
常见元字符
说明
\s 匹配单个空格,包括tab键和换行符
\S 匹配出单个空格符之外的所有字符,\S与\s互为逆运算
\d 匹配从0~9的数字
\w 匹配字母,数字或者下划线字符
\W 匹配所有与\w不匹配的字符,\W与\s互为逆运算
\cx 匹配由x指明的控制字符。
\f 匹配一个换页符,等价与\x0c和\cL
\n 匹配一个换行符,等价于\x0a和\cJ
\r 匹配一个回车符,等价于\x0d和\cM
\t 匹配一个制表符,等价于\x09和\cI
\v 匹配一个垂直制表符。等价于\x0b和\cK
. 用于匹配除换行符之外的所有字符
常见限定符说明
* 匹配前导字符出现零次或者多次
+ 匹配前导字符出现一次或者多次
? 匹配前导字符出现零次或者一次
{n} 匹配前导字符出现n次,n>=0;
{n,} 匹配前导字符至少出现n次,n>=0;
{n,m} 匹配前导字符至少出现n次,最多出现m次;m>n>=0;
定位符说明
^ 匹配模式必须出现在目标字符串开头
$ 匹配模式必须出现在目标的结尾
\b 匹配模式必须出现在目标字符串的开头或者结尾的两个边界之一
\B 匹配对象必须位于目标字符串的开头和结尾的两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾
正则表达式匹配模式的范围指定符
[] 限定的模式指定了其中一个字符的出现的可能。如/[A-Z]/表示匹配从A到Z任何一个字符;
() 限定的模式指定()里包含的内容必须同时出现在对象中。如/(abc)[0-9]/意思是目标字符串中出现的abc1,abc2...abc9中9个中的任何一个,而不是ab1,a2等;
| 类似于逻辑运算中的“或”运算,如:/sb|a/表示与目标对象的"sb","a"中任何一个相匹配;
当^符出现在[]中时,表示取否定运算。
字符转义与优先级顺序
在匹配模式需要使用元字符时,需要使用转移字符“\+元字符”表示,如查找“12*”模式,我们可以使用/12\*/表示;
正则表达式在匹配过程中是按照从左向右的顺序进行的,其操作符具有一定的优先级顺序
优先级顺序
优先级 操作符 说明
1 \ 转义符
2 (),(?:),(?=),[] 圆括号和方括号
3 *,+,?,{n},{n,},{n,m} 限定符
4 ^,$,\anyMatchcharacter 位置顺序
5 | 或操作