1.基本定义:
\s:用于匹配单个空格符,包括tab键和换行符;
\S:用于匹配除单个空格符之外的所有字符;
\d:用于匹配从0到9的数字;
\w:用于匹配字母,数字或下划线字符;
\W:用于匹配所有与\w不匹配的字符;
. :用于匹配除换行符之外的所有字符。
“^”定位符规定匹配模式必须出现在目标字符串的开头
“$”定位符规定匹配模式必须出现在目标对象的结尾
“\b”定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一
“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内
/[A-Z]/ 上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。
/[a-z]/ 上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。
/[0-9]/ 上述正则表达式将会与从0到9范围内任何一个数字相匹配。
2.特殊符号:
1.\ 转义符
2.(), (?:), (?=), [] 圆括号和方括号
3.*, +, ?, {n}, {n,}, {n,m} 限定符
4.^, $, \anymetacharacter 位置和顺序
5.|“或”操作
正则表达式对象
本对象包含正则表达式模式以及表明如何应用模式的标志。
语法 1 re = /pattern/[flags]
语法 2 re = new RegExp("pattern",["flags"])
参数
re
必选项。将要赋值为正则表达式模式的变量名。
Pattern
必选项。要使用的正则表达式模式。如果使用语法 1,用 "/" 字符分隔模式。如果用语法 2,用引号将模式引起来。
Flags
可选项。如果使用语法 2 要用引号将 flag 引起来。标志可以组合使用,可用的有:
g (全文查找出现的所有 pattern)
i (忽略大小写)
m (多行查找)
3.高级功能:捕获组
(?=X) X,通过零宽度的正
lookahead。零宽度正先行断言,仅当子表达式 X 在
此位置的右侧匹配时才继续匹配。
例如,\w+(?=\d) 表示字母后面跟数字,但不捕获数字(不回溯)
(?!X) X,通过零宽度的负
lookahead。零宽度负先行断言。仅当子表达式 X 不在 此位置的右侧匹配时才继续匹配。
例如,\w+(?!\d) 表示字母后面不跟数字,且不捕获数字。
(?<=X) X,通过零宽度的正 lookbehind。零宽度正后发断言。仅当子表达式 X 在 此位置的左侧匹配时才继续匹配。
例如,(?<=19)99 表示99前面是数字19,但不捕获前面的19。(不回溯)
(? (?>X) X,作为独立的非捕获组(不回溯)
(?=X)与(?>X)的区别在于(?>X)是不回溯的。例如被匹配的字符串为abcm
当表达式为a(?:b|bc)m是可以匹配的,而当表达式是a(?>b|bc)m时是不能匹配的, 因为当后者匹配到b时,由
于已经匹配,就跳出了非捕获组,而不再次对组内的字符进行匹配。
可以加快速度。
4.摘抄的例子:
支持多次匹配的方式:
原文:http://www.cnblogs.com/fer-team/p/3514172.html