(1)直接量字符
字符 | 匹配 |
字母和数字字符 | 自身 |
\o | NUL字符 |
\t | 制表符 |
\n | 换行符 |
\v | 垂直制表符 |
\f | 换页符 |
\r | 回车符 |
\xnn | 由十六进制数nn指定的拉丁字符,\x0A=\n |
\uxxxx | 由十六进制数xxxx指定的Unicode字符,\u0009=\t |
\cX | 控制字符^X,\cJ=\n |
(2)字符类
字符 | 匹配 |
[…] | 方括号内的任意字符 |
[^…] | 不在方括号内的任意字符 |
. | 除换行符和其他Unicode行终止符之外的任意字符 |
\w | 任何ASCII字符组成的单词 [a-zA-Z0-9_] |
\W | 任何不是ASCII字符组成的单词 [^a-zA-Z0-9_] |
\s | 任何Unicode空白符 |
\S | 任何非Unicode空白符的字符 |
\d | 任何ASCII数字,[0-9] |
\D | 除了ASCII数字之外的任何字符 [^0-9] |
[\b] | 退格直接量 |
(3)重复字符(贪婪匹配)
字符 | 含义 |
{n,m} | 匹配前一项至少n次,但不能超过m次 |
{n,} | 匹配前一项至少n次或者更多次 |
{n} | 匹配前一项n次 |
? | 匹配前一项0次或者1次(可选项) {0,1} |
+ | 匹配前一项1次或者多次 {1,} |
* | 匹配前一项0次或者多次(不限次) {0,} |
非贪婪匹配:尽可能少的匹配
??、+?、*?、{n,m}?
(4)选择、分组、引用字符
字符 | 含义 |
| | 选择,匹配左右子表达式(从左往右,若左边匹配则忽略右边) |
(…) | 组合 |
(?:…) | 只组合 |
\n | 和第n分组第一次匹配的字符相匹配 |
(5)锚字符
字符 | 含义 |
^ | 匹配字符串的开头 |
$ | 匹配字符串的结尾 |
\b | 匹配一个单词的边界 Eg:\bhi\b |
\B | 匹配非单词边界的位置 |
(?=p) | 正向先行断言,要求接下来的字符都与p匹配,但不包括p那些字符 |
(?!p) | 负向先行断言,要求接下来的字符不与p匹配 |
(6)修饰符
字符 | 含义 |
i | 执行不区分大小写的匹配 |
g | 执行全局匹配,找到所有匹配 |
m | 多行匹配模式 |
Eg:/java$/im → “java”或者“Java\nis fun”
(7)String对象
方法 | 示例 | 返回 | 特殊 |
search() | “JavaScript”.search(/script/i) 返回4 | 第一个与之匹配的子串的起始位置,找不到则返回-1 | 不支持全局检索,忽略修饰符g |
replace() | text.replace(/javascript/gi,“JavaScript”) text.replace(/“([^”]*)”/, ‘“$1”’) | 替换后的字符串 | $数字 参数若非正则表达式,则直接搜索 |
match() | “1 plus 2 equals 3”.match(/\d+/g) 返回[“1”, “2”, “3”] | 由匹配结果组成的数组,未匹配则返回null | 非全局搜索时,a[0]存放完整匹配,a[1]存放a[0]与第一个括号括起来表达式相匹配的子串,所以a[n]存放的是$n的内容 |
split() | “123,456,789”.split(“,”) 返回[“123”, “456”, “789”] “1, 2, 3, 4, 5”.split(/\s*,\s*/) 返回[“1”, “2” ,“3”, “4”, “5”] | 拆分后的子串数组 | 参数是正则表达式时,可以指定分隔符,允许留白 |
(8)RegExp对象
方法 | 示例 | 返回 | 特殊 |
regExp() | var zipcode=new RegExp(“\\d{5}”, “g”) | RegExp对象 | 第一个参数正则表达式主体部分(两斜线之间) 第二个参数可选,修饰符 “\”转义字符前缀 |
exec() | var pattern=/Java/g; var text=”JavaScript is more fun than Java!”; var result=pattern.exec(text); | 同match。 数组.index:发生匹配的字符位置 数组.input:引用正在检索的字符串 | 数组第一个元素为与正则表达式匹配的字符串,余下的是与圆括号内的子表达式匹配的字符串。 同一个正则表达式第二次调用exec()时,将从lastIndex出开始检索。 |
test() | var pattern=/java/I; pattern.test(“JavaScript”); | 只要存在匹配就返回true,否则返回false | 也可使用lastIndex属性 |
属性 | 含义 | 类型 |
source | 正则表达式的文本 | 只读字符串 |
global | 是否带有修饰符g | 只读布尔值 |
ignoreCase | 是否带有修饰符i | 只读布尔值 |
multiline | 是否带有修饰符m | 只读布尔值 |
lastIndex | 若有修饰符g,该属性存储在整个字符串中下一次检索的开始位置 | 可读/写整数(exec和text方法会用到) |
转载自:www.cnblogs.com/dreamsqin/p…