匹配单个字符串
- 用“ . ”来匹配任意单个字符
- 需要找“ . ”本身使用“.”,""为特殊字符序列的开头
匹配一组字符串
-
匹配多个字符中的某一个
- 使用“ [ ” 和 “ ] ” 来定义一个字符集合
-
利用字符集和区间
- [0-9] 和 [A-Z] 和 [A-Za-z0-9]
-
取非匹配
- [^0-9a-b] 注意:" ^ " 是作用于整个区间,而非紧跟后面的
使用元字符
-
匹配空白字符
- B —— 回退并删除一个字符(BackSpace键)
- f —— 换页符
- —— 换行符
- —— 回车符
- —— tab符
- v —— 垂直tab符
-
匹配数字
- —— 任意一个数字字符(等价于[0-9])
- D —— 任意一个非数字字符(等价于[^0-9])
-
匹配字母和数字(与非字母和数字)
- w —— 任意一个字母(大小写都可),数字,下划线(等价于[a-zA-Z0-9_])
- W —— 任意一个非字母,数字或非下划线的字符(等价于[^a-zA-Z0-9_])
-
匹配空白字符(于非空白字符)
- s —— 任意一个空白字符(等价于[f v])
- S —— 任意一个非空白字符(等价于[^f v])
-
匹配十六进制货八进制数值
-
使用POSIX字符类 (javascript不支持)
重复匹配
-
匹配一个或多个字符
- 使用 “ + ” 表示同一个字符(或字符集合)的多次重复, 至少需要匹配一个字符。
- 字符集合中的元字符会被解析为普通字符,例如:[w.] 等价于 [w.]
-
匹配零个或多个字符
- 使用 “ * ” 表示同一个或多个字符(或字符集合)的多次重复。
- 可以把 “ * ” 理解为 “在我前面的字符或字符集合是可选的”
- “ + ” 和 “ * ” 区别是前者至少需要匹配一个字符,后者可以不出现
-
匹配零个或多个字符
- 使用 “ ? ” 表示同一个字符(或字符集合)的零次或一次出现。
匹配的重复次数
-
为重复匹配的次数设定一个精确的值
- 使用“ { ” 和 “ } ” 来为前面一个字符(或字符集合)重复匹配次数设定一个精确的值。
- 例子: [3] [1] [2]
- 正则:
([d]){3}
-
为重复匹配次数设定一个区间
- 使用“ { ” 和 “ } ” 来为前面一个字符(或字符集合)重复匹配次数设定一个区间的值。
- 例子:
- [3] [1] [2]
- myArray[0]
- 正则:
([d]){1,3}
-
匹配 “至少重复多少次”
- 例子:
- [3] [1] [2]
- myArray[0]
- 正则:
([d]){1,}
- 例子:
- 匹配 贪婪型元字符 和 懒惰型元字符
-
贪婪型元字符 : 懒惰型元字符
-
- : *?
-
- : +?
-
{n,} : {n,}?
-
例子:需要取得元素标签
- BK and cK
-
正则:
<[Bb]>.*?
-
位置匹配
- 单词边界
- 使用 ** ** 来匹配一个单词的开始或结尾
** ** 匹配这样的一个能构成单词的字符(字母,数字和下划线),等同于 ** w ** - 例子:
The cat acattered his food all over the room - 正则:
cat
- 输出:cat
- 使用 ** B ** 表示不匹配一个单词的边界
等同于 ** W **
- 使用 ** ** 来匹配一个单词的开始或结尾
- 字符串边界
- 使用 ** ^ ** 定义字符串的开头
- 例子:
this is bad - 正则:
^s*<?xml.*?>
//对合法的空白自负做出妥善处理
- 使用 ** (?m) ** 开启分行模式
分行模式吧分隔符当做一个字符串分隔符来对待
有许多正则表达不支持分行模式 - 例子:
//a
//b - 正则:
(?m)^s*//.*$
子表达时
- 使用 ** “( ” ** 和 ** “ ) ” ** 来表示子表达式
- 例子:
1983-03-13 - 正则:
(19|20)d{2}
- 例子:
- 使用子表达式的嵌套,应该按照先內后外的原则进行
回朔引用:前后一致匹配
- 使用 ** 数字 ** 表示表达式的后半部分引用在前半部分中定义的子表达式,可以想象变成变量
- 例子:
of of and and - 正则:
[ ]+(w+)+[ ]+1
- 例子:
- 替换模式 P85 需要继续了解
前后查找
- 正向前查找 ** ?= **
- 正向后查找 ** ?<= **
- 负向前查找 ** ?! **
- 负向后查找 ** ?<! **
javascript的正则 附录
- exec:匹配 RegEx
- match:匹配 字符串
- replace:替换 字符串
- split:分拆
- search:测试指定的字符串是否匹配字符串的方法
- test: 测试指定的字符串是否匹配RegEx的方法
javascript 命令行注意点
- g:激活全局搜索功能
- i:匹配不分字母大小写
- m:多行字符串
- s:单行字符串
- x:忽略空表字符
- $':将返回被匹配字符串前面的所有东西
- $`:将返回被匹配字符串后面你的所有东西
- $&:将返回被匹配到的所有东西