一. 两种创建方法
1.正则字面量
var reg = /正则表达式/[修饰字符];
var reg = /abc/img; 不区分顺序和个数 i m g img ig gi ...只要有就可以
2.new RegExp() 正则的构造
var reg = new RegExp(正则表达式,[修饰字符])
二.方括号 [] 一个方括号表示匹配一个字符
[abcd] 匹配abcd任意一个字符
[abc123] 匹配abc123任意一个字符
[a-z] 匹配a-z之间的任意字符,可以表示一个范围,中间用-连接
[0-9]
[A-z] 按照ascii编码来排序的,A-Z a-z的任意字符
[^abcd] 写在[]里面的^表示取反, 除了abcd全都可以匹配
var str = "abcde";
var reg = /[^abcd]/g;
console.log(str.match(reg));
三.常用的元字符
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束 例: ^\d{5, 12}$
和忽略大小写的选项类似,有些正则表达式处理工具还有一个处理多行的选项,如果选中了这个选项,^和$的意义就变成了匹配行的开始处和结束处。
四.量词
1.量词?的应用
1 re.search(r"^travell?er$", "traveler") != None # => True 2 3 re.search(r"^travell?er$", "traveller") != None # => True
2.量词+的应用
1 re.search(r"^<[^>]+>$", "") != None # => True 2 3 re.search(r"^<[^>]+>$", " 4 5 ") != None # => True 6 re.search(r"^<[^>]+>$", "<>") != None # => False
3.n{X} 匹配包含 X 个 n 的序列的字符串
1 var str = "aaaaaaaaaaaaaaaabc"; 2 var reg = /a{5}/g; 3 console.log(str.match(reg));
4.n{X,Y} 匹配包含 X 至 Y 个 n 的序列的字符串
1 正则表达式默认的是贪婪模式,按照最多的进行匹配 2 var str = "aaaaaaaaaaaaaaaaabc"; 3 var reg = /a{1,3}?/g; //后面加上问好表示非贪婪模式,按照最少的进行匹配 4 console.log(str.match(reg));
五.属性
正则表达式支持的属性有 4 个,分别为 Global、IgnoreCase、Multiline、Pattern
Global 全局搜索:是否具有标志 g
IgnoreCase 大小写敏感:是否具有标志 i
Multiline 多段搜索:具有标志 m
lastIndex:一个整数,标示开始下一次匹配的字符位置 。 游标,可以获取可以赋值
六.方法