正则表达式中.* 和 .*?的区别
.*表示贪婪匹配;
.*?表示非贪婪匹配;
001、R语言中
> sub("a.*b", "", c("aabab","eabbe")) ##.*表示贪婪匹配,只要满足条件就一直匹配 [1] "" "ee" > sub("a.*?b","",c("aabab","eabbe")) ##.*?表示非贪婪匹配,只匹配满足条件一次 [1] "ab" "ebe"
002、shell中 并不适用
root@PC1:/home/test2# cat a.txt aabab eabbe root@PC1:/home/test2# sed 's/a.*b//' a.txt ##贪婪匹配 ee root@PC1:/home/test2# cat a.txt aabab eabbe root@PC1:/home/test2# sed 's/a.*?b//' a.txt aabab eabbe root@PC1:/home/test2# sed 's/a.*\?b//' a.txt ##加?仍然是贪婪匹配 ee
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2021-05-16 c语言 7-1
2020-05-16 vcftools 软件的 安装