简介:正则表达式是对字符串进行逻辑操作的表达式,事先定义好特定的字符或者是特定的字符串组合,应用于对字符串的检索,相当于是字符串的一个逻辑过滤的表达式。
作用:
- 具有匹配的作用
- 具有过滤的作用
符号:正则表达式的符号包括普通符号和元符号,普通符号为数字和大小写的字母,而元符号具有特殊的含义。

正则表达式的匹配包含匹配字符串和匹配位置。
类别 | 元符号 | 描述 | 写法 |
错位符 | ^ | 匹配输入字行首,^在[]中表示除外的意思 | |
错位符 | $ | 匹配输入字行尾 | |
数量符 | * | 匹配零个或多个,相当于{0,} | |
数量符 | + | 匹配一个或多个,相当于{1,} | |
数量符 | ? | 匹配零个或一个,相当于{1};除此之外也表示为非贪婪 | |
数量符 | {n,m} | 匹配至少大于n个小于m个,是一个数量匹配区间 | 和符号是一致的 |
数量符 | *? | 非贪婪模式,为非贪婪匹配零个或多个,所获取的为零个 | 和符号是一致的 |
数量符 | ?? | 非贪婪模式,为非贪婪匹配零个或一个,获取零个 | 和符号是一致的 |
数量符 | +? | 非贪婪模式,为非贪婪匹配一个或多个,获取一个 | 和符号是一致的 |
分组 | [abc] | 匹配字符集合,匹配a,b,c | |
分组 | (pattern) | 匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中则使用$0…$9属性。要匹配圆括号字符,请使用“\(”或“\)”。 | 和符号是一致的 |
分组 | (?:pattern) | 非获取匹配,匹配pattern但不获取结果 ,不进行储存使用 | 和符号是一致的 |
分组 | (?=pattern) | 非获取匹配,正向肯定预查。例如window(?=2000|12)这个式子能匹配的是window2000和window12,但获取的是window | 和符号是一致的 |
分组 | (?!pattern) | 非获取匹配,正向否定预查。例如window(?!2000)这个式子是表示除window2000以外的window****都可以匹配,但获取的是window | 和符号是一致的 |
分组 | (?<=pattern) | 非获取匹配,反向肯定预查。例如(?<=2000|12)window表示的是匹配2000window和12window,但获取window | 和符号是一致的 |
分组 | (?!=pattern) | 非获取匹配,反向否定预查。 | 和符号是一致的 |
分组 | [a-z] | 匹配a-z的字符 | 和符号是一致的 |
快捷方式 | \d | 匹配数字 | "\\d" |
快捷方式 | \w | 匹配包含下划线的单词词组 | "\\w" |
快捷方式 | \s | 匹配空白字符,如\n,\t,空格 | "\\s" |
反快捷方式 | \D | 匹配非数字 | "\\D" |
反快捷方式 | \W | 匹配非词组 | "\\W" |
反快捷方式 | \S | 匹配非空白 | "\\S" |
其他元字符 | . | 匹配任何字符 | 和符号是一致的 |
其他元字符 | | | 将两个匹配条件进行或逻辑运算 | |
其他元字符 | \ | 将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“\\n”匹配\n。“\n”匹配换行符。序列“\\”匹配“\”而“\(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。 | \\p{Lower} |
\p{Lower} | 匹配小写字母 | \\p{Lower} | |
\p{Upper} | 匹配大写字母 | \\p{Upper} | |
\p{ASCII} | 匹配ASCII字符 | \\p{ASCII} | |
\p{Alpha} | 匹配字母字符 | \\p{Alpha} | |
\p{Digit} | 匹配十进制数字 | \\p{Digit} | |
\p{Alnum} | 匹配数字或字母字符 | \\p{Alnum} | |
\p{Puct} | 匹配标点符号 | \\p{Puct} | |
\p{Graph} | 匹配可见符号 | \\p{Graph} | |
\p{Print} | 匹配可打印符号 | \\p{Print} | |
\p{Blank} | 匹配空格或制表 | \\p{Blank} | |
\p{Cntrl} | 匹配控制字符 | \\p{Cntrl} | |