1、字符类
字符型 | 释义 | 举例 |
---|---|---|
[…] | 匹配方括号内字符序列的任意一个字符,可以使用连字符”-“匹配指定范围的任意字符。 | /[012]/ 可以与0A1B2C中字符0或1或2匹配; /[0-5]/ 可以与a3df234df4412中0-5之间任意数字字符匹配。 |
[^…] | 匹配方括号中字符序列未包含的任意字符,其中可以使用连字符“-”匹配不在指定范围内的任意字符。 | /[^012]/ 可以与0A1B2C中除了0或1或2之外的任意字符匹配;/[^a-z]/ 可以与a3df234df4412中不在小写字母a-z之间任意数字字符匹配 |
. | 匹配除了换行和回车之外的任意一个字符,相当于[^\r\n] | 略 |
\d | 匹配任意一个数字字符,相当于[0-9] | /\d/ 可以匹配wy3k中的3 |
\D | 匹配任意非数字字符,相当于[^0-9] | /\D/ 可以匹配wy3k中的w或y或k |
\s | 匹配任意空白字符,如空格、制表符、换行符等,相当于[\t\n\x0B\f\r] | /\s\d/ 可以匹配my age is 20. 中的2(因为只匹配一个字符)。 |
\S | 匹配任意非空白字符,相当于[^\t\n\x0B\f\r] | /\S/ 可以匹配A B中的A或B |
\w | 匹配任何英文字母、数字字符以及下划线,相当于[a-zA-Z0-9_] | /\w/ 可以匹配shadf65dad668_$@#中的字母、数字、下划线中的一个字符 |
2、量词
字符型 | 释义 | 举例 |
---|---|---|
? | 匹配前一项0次或1次 | /JS?/ 可以匹配JScript中的JS或者JavaScript中的J(S可出现0次或1次就满足条件) |
+ | 匹配前一项的一次或多次,但至少要出现一次 | /JS+/ 可以匹配JS,也可以匹配JSSSS或者JSS。 |
* | 匹配前一项0次或者多次,也就是任意次 | /bo*/ 可以匹配b、bo、boo、boooo。 |
{n} | 匹配前一项恰好是n次,其中n为非负整数 | /o{2}/ 可以匹配book中的两个o,也可以匹配boooook中的任意两个连续的o。 |
{n,} | 匹配前一项至少n次 | /o{2,}/ 不能匹配home中的o,因为至少要匹配两个o,所以可以匹配good或者goooood中的所有o。 |
{n,m} | 匹配前一项至少n次,但不能超过m次,其中n、m是非负整数,并且n<=m | /o{2,5}/ 可以匹配book中的两个o,也可以boook和boooook中的o。 |
在使用{n,m}时,数字和逗号之间不能有空格符。
3、指定匹配位置
字符型 | 释义 | 举例 |
---|---|---|
^ | 起始位置,匹配字符串的行开头,^必须出现在制定字符串的最前面才起作用。 | /^g/ 匹配good中的g,但不匹配bag中的g。 |
$ | 结束位置,匹配字符串的行结尾,$必须出现在指定字符串的最后面才起作用。 | /g$/ 匹配bag中的g,但不匹配good中的g。 |
\b | 匹配单词的边界 | /e\b/ 匹配“I love seek”中love的e,不匹配seek中的e。 |
\B | 匹配单词的非边界 | /e\B/ 匹配“I love seek”中seek的e,不匹配love中的e。 |
4、使用选择匹配符
正则表达式的选择匹配符只有一个”|”,使用”|”可以匹配指定的多个选项中的任意一项。
例如:
字符型 | 释义 |
---|---|
/World|Dream/ | 可以匹配“One World One Dream”中的World或Dream |
5、分组
分组就是使用小括号将多个单独的字符或字符类组合成子表达式,以便可以像处理一个独立的单元那样,用”|”、“*”、“+”或“?”等来处理。
例如:
字符型 | 释义 |
---|---|
/J(ava)?Script/ | 可以匹配JavaScript,也可以匹配JScript |