正则表达式(一)认识常用字符
一.非打印字符
\n 换行符
\r 回车符
\s 任何空白符号
\S 任何非空白符号
二.特殊字符
() 子表达式
...................限定符.............
* 0次或者多次 贪婪
+ 1次或者多次 贪婪
? 0次或者1次 非贪婪 非贪婪和贪婪可以组合使用,如 +? ,*? 可以实现非贪婪或者最小匹配
{} 限定符表达式(次数) {n,m},n是非负整数,表示 n<=匹配的次数<=m,其中m值不是必设项.
例如
o{2} -> 匹配出现2次的o, bob不能匹配,boob可以匹配;
o{2,} -> 表达式匹配至少出现2次的
o{2,4} -> 表达式匹配至少出现2次,最多不超过4次
................................
. 匹配除换行符/n 之外的所有字符
[] 中括号表达式
\ 转义字符
| 或
三.定位符 (定位符不可与限定符一起使用)
^ 1:匹配字符串开始位置 2:在方括号中表示 非 [^ 例如 [^ \n] 非换行符
$ 匹配字符串结尾位置
\b 匹配单词边界,字与空格间的位置
\B 非单词匹配边界
四,选择
非捕获元:仅仅匹配,但是不获取
?:
?=
?!
五,反向引用
只能用于子匹配分组模式
(pattern) 匹配分组
\number 用于匹配第number个分组中的内容(number范围:1~99)
var str = "Is is the cost of of gasoline going up up";
var patt1 = /\b([a-z]+) \1\b/ig;
document.write(str.match(patt1));
// 输出结果
Is,is,of,of,up,up
上述例子中, ([a-z]+) 是第一个子分组, 表达式 ([a-z]+) \1 意思 匹配([a-z]+) 分组后的结果a 再匹配一次相同的结果a ,例如 up 后再匹配 up