正则表达式中的 .*? 或 .*+ 是什么意思? 20
为什么不用:.* 来表示呢? 为什么后面多个?或+ 展开
一、*表示匹配前面的字符0个或多个
二、+表示前面的字符1个或多个
三、?表示放在其他字符后面表示前面的字符可以有,也可以没有,或者放在*、+后面表示匹配尽可能少的字符
例如:字符串fooooo,正则fo*和fo+会匹配整个字符串,
fo+? 匹配fo,
fo*? 匹配f
四、*+没有这样的用法,除非是匹配星号本身,即: \*+ 表示一个或多个星号
扩展资料:
正则表达式符号
\:
将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“\\n”匹配\n。“\n”匹配换行符。序列“\\”匹配“\”而“\(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。
^:
匹配输入字行首。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。
$:
匹配输入行尾。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。
参考资料来源:百度百科-正则表达式
必须跟在*或者+后边用
如:<img src="test.jpg" width="60px" height="80px"/>
如果用正则匹配src中内容非懒惰模式匹配
src=".*"
匹配结果是:src="test.jpg" width="60px" height="80px"
意思是从="往后匹配,直到最后一个"匹配结束
懒惰模式正则:
src=".*?"
结果:src="test.jpg"
因为匹配到第一个"就结束了一次匹配。不会继续向后匹配。因为他懒惰嘛。
.表示除\n之外的任意字符
*表示匹配0-无穷
+表示匹配1-无穷
表达式 .* 就是单个字符匹配任意次,即贪婪匹配。 表达式 .*? 是满足条件的情况只匹配一次,即最小匹配.
举例介绍:
如:<img src="test.jpg" width="60px" height="80px"/>
懒惰模式正则:
src=".*?"
结果:src="test.jpg"
扩展资料
正则表达式特殊字符及其含义:
1、\cx
匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 ‘c’ 字符。
2、\f
匹配一个换页符。等价于 \x0c 和 \cL。
3、\n
匹配一个换行符。等价于 \x0a 和 \cJ。
4、\r
匹配一个回车符。等价于 \x0d 和 \cM。
5、\s
匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
6、\S
匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
7、\t
匹配一个制表符。等价于 \x09 和 \cI。
8、\v
匹配一个垂直制表符。等价于 \x0b 和 \cK。
参考资料:
.*+是无限匹配直到最后一个。
2013-12-25
*:修饰前面的字符,0到多
+:修饰前面的字符,1到多