请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于description替换的疑问

图片描述

图片描述

老师 这个正则表达式中 “(.?)” ?号后面就结束了没有跟任何东西,.? 没有匹配到任何字符。不知道老师在这里加 “(.?)“ 的作用是啥. 并且 我试着把 “(.?)” 还有后面的$2 去掉,发现也是正常的。

正在回答 回答被采纳积分+3

1回答

天经地义 2020-07-14 12:52:28

.  是任意字符,可以匹配任何单个字符

* 通配符匹配零个或多个字符

? 通配符匹配文件名中的 0 个或 1 个字符

(.*?) 是懒惰匹配尽可能匹配少的字符但是要匹配出所有的字符


拓展:

(.*) 是贪婪匹配代表尽可能多的匹配字符因此它将h和l之间所有的字符都匹配了出来

(.+?) 代表匹配中间字符数量是大于等于1的字符

(.+?)代表匹配中间字符数量是大于等于1的字符

(.??)这个是匹配重复一次和零次的

                                                           —— 来自singwa助教

0 回复 有任何疑惑可以回复我~
  • 提问者 慕粉3597289 #1
    第一个?号我能理解:就是找到第一个s就停止了(代表懒惰模式),但是第二个?号(应该也是代表懒惰模式)后面就没跟东西了,它限制的是 .* (代表除换行符之外任意数量的字符) * 表示0个或者多个 ,这样理解.*?就是匹配0个字符。
    回复 有任何疑惑可以回复我~ 2020-07-14 14:57:36
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信