首页 新闻 会员 周边 捐助

linux正则懒惰模式

0
[已解决问题] 解决于 2019-12-22 12:03


为啥使用.*?就不能匹配a=13,而使用.*就可以匹配,看清问题再回答,谢谢大佬

fangpengcheng_方鹏程的主页 fangpengcheng_方鹏程 | 菜鸟二级 | 园豆:206
提问于:2019-12-18 19:41
< >
分享
最佳答案
0

在* + 这类的后面添加? 就是惰性匹配 , 也就是匹配到一个之后就不在匹配了. 正则都有这种操作.
假设场景 ,我想获取所有文章的第一段内容(\n 为一段)时就可以使用的

总是还是很有用的

奖励园豆:5
xiaobaiskill | 小虾三级 |园豆:1122 | 2019-12-18 22:59

我问的是上面加“?”为什么不能匹配到a=13?

fangpengcheng_方鹏程 | 园豆:206 (菜鸟二级) | 2019-12-18 23:26

首先你知道set命令是干嘛的么,还有sed命令是干嘛的么,不然你怎么回答问题

fangpengcheng_方鹏程 | 园豆:206 (菜鸟二级) | 2019-12-18 23:28

我以前还写了一篇正则惰性匹配博客,基本我也会用,我就问这里为什么不能匹配环境变量

fangpengcheng_方鹏程 | 园豆:206 (菜鸟二级) | 2019-12-18 23:30

@xiaofang.bk:

. 可以匹配到任意字符  但如果只写. 只能匹配一个
* 可以匹配到 前面字符的任意个
  .*  可以匹配到13 因为* 是可以匹配到所有

加了一个? ,表示匹配到一个 ,就不在匹配了,(因为是惰性模式, 当确认匹配到1 之后就不会匹配后面的字符了)

最后 你要是真知道的话,就不会问这种问题了.

xiaobaiskill | 园豆:1122 (小虾三级) | 2019-12-19 10:52

@xiaobaiskill: 先指出你一个错误,谁说匹配到1,匹配到=,没看到*限定符吗?还有,你还没解答我这个问题,看清问题,我问为什么不匹配

fangpengcheng_方鹏程 | 园豆:206 (菜鸟二级) | 2019-12-19 12:29

@xiaobaiskill: 你就是个菜鸟,不想说你,

fangpengcheng_方鹏程 | 园豆:206 (菜鸟二级) | 2019-12-19 12:34

@xiaofang.bk:

不好意思,理解错题意了,抱歉

sed 是不支持非贪婪模式的
xiaobaiskill | 园豆:1122 (小虾三级) | 2019-12-19 13:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册