正则表达式基本语法
1. 正则表达式的语法:
|
代码 |
说明 |
|
. |
匹配除换行符以外包括空格和Tab键的任意字符 |
|
* |
重复前一个字符或一组表达式零次或更多次 |
|
? |
重复前一个字符或一组表达式零次或一次 |
|
+ |
重复前一个字符或一组表达式一次或更多次; |
|
-(下划线) |
匹配除了换行符以外的任意字符 |
|
\ |
转义符,将特殊字符转化为普通字符,取消后面跟着的字符的特殊意义;比如如果你想查找“.”,或者“*”,就需要用“\”。因此,你应该使用“\.”和“\*”。当然,要查找\本身,你也得用“\\.” |
|
| |
或的表达式,表示分支条件,匹配代码左侧的表达式或匹配代码右侧的表达式两者之一;注意:当左侧的表达式匹配条件相符的话,不再检测右侧的表达式 |
|
^ |
匹配字符串的开始的一个位置,同时也表示否的表达式,表示不想被匹配的字符,一般和[]一起使用。也匹配输入字符串的开始 |
|
$ |
匹配字符串的结束的一个位置 |
|
() |
匹配一组表达式,该表达式可以由其它特殊字符组成 |
|
[] |
匹配包含在其中的单个字符 |
|
\w |
匹配任意一个字母或数字或下划线或汉字等 |
|
\W |
匹配任意不是字母,数字,下划线,汉字的字符 |
|
\s |
匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等 |
|
\S |
匹配任意不是空白符的字符,等价于[^\f\n\r\t\v] |
|
\d |
匹配任意一位数字,等价于[0~9] |
|
\D |
匹配任意非数字的字符,等价于[^0~9] |
|
\b |
匹配一个单词的开始或结束,也就是指单词和空格间的位置 |
|
\B |
匹配不是单词开头或结束的位置 |
|
\f |
匹配一个换页符 |
|
\n |
匹配一个换行符 |
|
\r |
匹配一个回车符 |
|
\t |
匹配一个制表符 |
|
\v |
匹配一个垂直制表符 |
|
{n} |
重复n次,只对邻近的字符或一组表达式起作用 |
|
{n,m} |
重复n到m次,只对邻近的字符或一组表达式起作用 |
|
(exp) |
匹配exp,并捕获文本到自动命名的组里 |
|
(?<name>exp) |
匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp) |
|
(?:exp) |
匹配exp,不捕获匹配的文本,也不给此分组分配组号 |
|
(?=exp) |
匹配exp前面的位置 |
|
(?<=exp) |
匹配exp后面的位置 |
|
(?!exp) |
零宽度负预测先行断言,断言此位置的后面不能匹配表达式exp。 |
|
(?<!exp) |
匹配前面不是exp的位置 |
|
*? |
重复任意次,但尽可能少重复 |
|
+? |
重复1次或更多次,但尽可能少重复 |
|
?? |
重复0次或1次,但尽可能少重复 |
|
{n,m}? |
重复n到m次,但尽可能少重复 |
|
{n,}? |
重复n次以上,但尽可能少重复 |
2. “ .”与 “\b” 的区别:
. 表示匹配除换行符以外包括空格和Tab键的任意字符;\b 则表示匹配一个单词的开始或结束,也就是指单词和空格间的位置。
浙公网安备 33010602011771号