正则表达式
1、简介
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
JS 中的正则表达式 以 /
开始,以 /
结束。注意并不是一个字符串,不需要加引号或者双引号。
?
通配符匹配字符串中 0 或者 1 个字符。
*
通配符匹配 0 个或者任意个字符(注意匹配的是 *
前面的字表达式)。
1.1、简单的示例
1、 ^[0-9]+abc$
^
表示匹配字符串的开始位置
[0-9]+
匹配多个数字, [0-9]
匹配单个数字, +
匹配一个或者多个
abc$
匹配字母 abc 并以 abc 结尾,$
匹配字符串的结束位置
2、 ^[a-z0-9_-]{3,15}$
[a-z0-9_-]
匹配字母、数字、_、-
1.2、正则表达式的作用
- 校验输入的文字是否符合预期规则
- 替换文本
- 提取子串
2、语法
2.1、普通字符
普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。
[aeiou]
匹配字符串中所有的 a、e、i、o、u 字符
[^aeiou]
匹配字符串中所有非的 a、e、i、o、u 字符
[A-Z]
表示一个区间匹配所有的大写字母,[a-z]
匹配所有的小写字母
.
匹配除换行符(\n\r)外的任意单个字符,相当于[^\n\r]
[\s\S]
\s
匹配所有的空白符,包括空格、换行、缩进 \S
匹配非空白符
\w
匹配字母、数字、下划线。等价于 [A-Za-z0-9_]
2.2、非打印字符
\cx
匹配由x指明的控制字符
\f
匹配换页符
\n
匹配换行符
\r
匹配回车符
\s
匹配任何空白符
\S
匹配任何非空白符
\t
匹配制表符
\v
匹配垂直制表符
2.3、特殊字符
如果想要匹配特殊字符本身的时候,需要加上 \
。例如 \$
表示匹配 $
字符,但是有些语言需要对 \
进行转义,比如 Java 。
"\\$"
$
匹配输入字符串的结束位置
()
标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。
*
匹配前面的子表达式零次或多次
+
匹配前面的子表达式一次或多次
.
匹配除换行符 \n 之外的任何单字符
[
标记一个中括号表达式的开始
?
匹配前面的子表达式零次或者一次
\
将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符
^
字符串开始
{
标记限定符表达式的开始
|
指明两项之间的一个选择