正则表达式中的 .*? 或 .*+ 是什么意思?
后边多一个?表示慵懒模式。必须跟在*或者+后边用。
.*? :尽可能少的匹配
.*+ :尽可能多的匹配
var str="Visit Microsoft!"
document.write(str.match(/V.*t/)) // Visit Microsoft
document.write(str.match(/V.*?t/)) // Visit
正则表达式中$1,$2 是什么意思?
$1,$2...是表示的小括号里的内容
$1是第一个小括号里的 ,$2是第2个小括号里的
比如 /gai([\w]+?)over([\d]+)/
匹配 gainover123
$1= 括号里的 n
$2= 第2个括号里的 123
正则表达式 \S 元字符
\S 元字符用于查找非空白字符。
空白字符可以是:
-
空格符 (space character)
-
制表符 (tab character)
-
回车符 (carriage return character)
-
换行符 (new line character)
-
垂直换行符 (vertical tab character)
-
换页符 (form feed character)
正则表达式中的*是什么意思?
*是一个限定符,用来修饰前一个字符或分组,限定匹配重复的数量为任意数量。
例如:
正则表达式 a* 可以匹配 a aa aaa aaaa aaaaaaa等等
正则表达式 (ab)* 可以匹配 ab abababab ababababababab等等
需要注意的是,*与+不同,+要求重复数量至少为1,*则可以为0,所以字符串为空也是可以匹配的。
以下是常用的限定符代码:
. 表示除\n之外的任意字符
*重复零次或更多次 表示匹配0-无穷
+重复一次或更多次 表示匹配1-无穷
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次
学习资料:
http://www.w3school.com.cn/jsref/jsref_replace.asp