正则基础
创建方式
- 使用RegExp()构造函数创建
- 直接量语法来创建
var pattern = /s$/ 等价于 var pattern = new RegExp("s$")
# 两种方式都代表匹配 **所有以字母 `s` 结尾的字符串 **
定义
正则表达式的模式规则是由一个字符序列组成的,包括所有的字母和数字在内,大多数的字符都是按照 直接量
仅描述待匹配的字符的
/java/ 可以匹配任何包含'java'子串的字符串。除此之外正则表达式中还有其他特殊语义的字符---元字符
字符类
将直接量字符单独放进 []
就组成了字符类。一个字符类匹配它所有包含的任意字符。
/[abc]/ # 匹配字母 "a"、 "b"、 "c" 中的任意一个
通过 ^
符号来定义 否定字符类
/[^abc]/ 3 代表匹配字母 "a"、 "b"、 "c" 之外的所有字符
字符类可以用连字符 -
来表示范围
/[a-z]/ # 匹配小写拉丁字母
/[a-zA-Z0-9]/ # 匹配拉丁字母表中的任何字母和数字
特殊字符类
- \s 匹配空格、制表符、其他Unicode空白符;
- \S 匹配非Unicode空白的字符
- \w 匹配任何ASCII字符组成的单词,等价于[a-zA-Z0-9]
- \W 匹配任何不是ASCII字符组成的单词,等价于a-zA-Z0-9
- \d 匹配任何ASCII数字,等价于[0-9]
- \D 匹配除了ASCII数字之外的任何字符,等价于0-9
重复次数
+
匹配前一项1次或者多次,等价于 [1,]