字母、数字、汉字、下划线、以及没有特殊定义的标点符号,都是普通字符。正则表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。
正则表达式在不同语言的支持方法略有不同,但总的正则语法是差不多的。
默认是区分大小写的。
普通匹配符
能够匹配与之对应的一个字符
i、g、m
称为正则标记符(参数)
-
i
表示不区分大小写 -
g
全局匹配 -
m
多行匹配
示例:
var str = "Hello Java Hello java";
var r = str.match(/java/gi);
上面的例子中,java
表示在str字符串中匹配包含java
的字符,g
表示全局匹配 i
表示忽略大小写,最后的匹配结果就是Java java
两个忽略大小写的java
字符。
匹配多个字符中的其中一个匹配符
-
\d
匹配数字0-9 -
\w
匹配字母、数字、下划线 -
.
匹配除换行的所有字符\d
、\w
、.
都只能匹配一个字符
示例:
var str = "hello 2016";
var r = str.match(/\w.\d/g);
示例中,\w.\d
可以连续匹配三个字符,在hello 2016
从左往右依次匹配: he
满足\w.
的匹配,l
不满足\d
的匹配;
在匹配失败的第三个字符l
开始匹配,ll
满足\w.
的匹配,o
不满足\d
的匹配;
在匹配失败的第五个字符o
重新开始匹配,o 2
满足\w.\d
的匹配,剩下的016
也满足匹配条件。
所以最后的匹配结果是 o 2、016。
简单的转义符
表达式 | 含义 |
\n | 代表换行符 |
\t | 制表符 |
\ | 代表 |
| 代表这些符号本身 |
标准字符集合
- 能够与 ‘多种字符’ 匹配的表达式
- 注意区分大小写,大写是相反的意思
表达式 | 含义 |
\d | 任意一个数字,0~9中的任意一个 |
\w | 任意一个字母或下划线,也就A~Z,a~z,0~9,_中任意一个 |
\s | 包括空格、制表符、换行符等空白字符的其中任意一个 |
| 小数点可以匹配除换行符以外的任意一个字符,如果要匹配包括 |
自定义字符集合
方括号匹配方式,能够匹配方括号中任意一个字符。
表达式 | 含义 |
[ab5@] | 匹配 |
[^abc] | 匹配 |
[f-k] | 匹配 |
[^A-F0-3] | 匹配 |