正则表达式 .*? 是什么意思啊?

 我来答
乐观小山
高粉答主

2018-12-03 · 说的都是干货,快来关注
知道小有建树答主
回答量:111
采纳率:100%
帮助的人:6万
展开全部

表达式 .* 就是单个字符匹配任意次,即贪婪匹配。 表达式 .*? 是满足条件的情况只匹配一次,即最小匹配.

举例介绍:

如:<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。    

参考资料:

百度百科——正则表达式

松甜恬0Je4ba
2011-06-10 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3410万
展开全部
.点 匹配任何单个字符。例如正则表达式r.t匹配这些字符串:rat、rut、r t,但是不匹配root。
* 匹配0或多个正好在它之前的那个字符。例如正则表达式。*意味着能够匹配任意数量的任何字符。
? 匹配0或1个正好在它之前的那个字符。注意:这个元字符不是所有的软件都支持的。

参考资料: http://baike.baidu.com/view/94238.htm

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
extirpate0832
2011-06-13 · TA获得超过249个赞
知道小有建树答主
回答量:152
采纳率:0%
帮助的人:127万
展开全部
.* 很简单,就是一个字符循环0次或者很多次
多一个?在后面,意思是 懒惰循环
举一个例子你就明白了
对于字符串 aaaaaaa
a* 一下子很勤劳的把整个字符串都匹配完了,结果是
aaaaaaa

a*? 很懒,发现匹配字符串中一个a后,就完成了匹配,就不用再继续尝试下去了,因此就第一次只匹配
a,然后进行第二轮匹配了,还是只吃一个a就结束。因为他懒嘛
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hbpaoxiao2
2011-06-10 · TA获得超过2897个赞
知道大有可为答主
回答量:1962
采纳率:72%
帮助的人:865万
展开全部
?的一个用法1楼已经说了,匹配0次或1次。
但是?还有第二个含义,作为正则的懒惰模式。
正则有两种模式,一种为贪婪模式(默认),另外一种为懒惰模式,以下为例:
(abc)dfe(gh)
对上面这个字符串使用(.*)将会匹配整个字符串,因为正则默认是尽可能多的匹配。
虽然(abc)满足我们的表达式,但是(abc)dfe(gh)也同样满足,所以正则会匹配多的那个。
如果我们只想匹配(abc)和(gh)就需要用到以下的表达式
(.*?)
在重复元字符*或者+后面跟一个?,作用就是在满足的条件下尽可能少匹配。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
透其下6348
2011-06-22 · 超过15用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:58.8万
展开全部
.点 匹配任何单个字符。
* 匹配0或多个正好在它之前的那个字符。就是0到n次
? 匹配0或1个正好在它之前的那个字符。(之前!!注意:这个元字符不是所有的软件都支持的。)
例如113366 11(.*?)66 匹配后就是33
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(15)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式