1.行定位符
描述子串边界。^表示开始,$表示结束
^ba 匹配以ba开头的字符串
ba$ 匹配以ba结尾的字符串
ba 匹配含有ba的字符串
2.元字符
行定位符也是元字符
. | 匹配除换行符以外的任意字符 |
---|---|
\w | 匹配字母、数字、下划线或汉字 |
\W | 与\w相反 |
\s | 匹配当个的空白符(含tab和\n) |
\S | 与\s相反 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
如:\bmr\w*\b 匹配以mr开头后面是任意数量的字母或数字,\w*表示的是任意数量的字母或数字。
3.限定符
限定符用来实现匹配指定数量的字符,如上面的*表示匹配多次
? | 匹配前面的字符0或1次 |
---|---|
+ | 匹配前面的字符1或多次 |
* | 匹配前面的字符0或多次 |
{n} | 匹配前面的字符n次 |
{n,} | 匹配前面的字符最少n次 |
{n,m} | 匹配前面的字符做少n次,最多m次 |
4.字符类
如要匹配没有预定义元字符的字符集合,可以用[]罗列起来。比如’[0-9]‘与’\d’一致,’[a-z0-9A-Z]‘与’\w’一致。
在字符类里,^表示匹配不符合指定字符集合的字符串(就是排除的意思).如:‘[^a-zA-Z]’表示匹配一个b不是字母的字符
5.选择字符
有时候匹配的字符串有着条件选择的逻辑,这时候我们就要用到选择字符’|'来实现.选择字符就是或者的意思
如果要匹配身份证号,身份证号长度为15位或者18位。如果是15位,全为数字;如果是18位,前17位为数字,最后一位可能为数字或者字符X。表达式:
(^\d{15}$)|(^\d{18}$)|(^\d{17})(\d|X|x))$
其中小括号的作用是分组。
在实际运用中,对于一些特殊字符需要用\进行转义,或者可以在模式字符串前加r或R.