Vin*_*cio 7 regex regex-greedy
我有以下文字
tooooooooooooon
Run Code Online (Sandbox Code Playgroud)
根据我正在阅读的这本书,当?
任何量词之后,它变得非贪婪.
我的正则表达式to*?n
仍在回归tooooooooooooon
.
它应该回归ton
不应该吗?
知道为什么吗?
Gar*_*eth 46
正则表达式只能匹配实际存在的文本片段.
因为字符串'ton'不存在于字符串中的任何位置,所以它不能是匹配的结果.匹配只返回原始字符串的子字符串
编辑:要清楚,如果你使用下面的字符串,额外的'n'
toooooooonoooooon
Run Code Online (Sandbox Code Playgroud)
这个正则表达式(没有指定'o')
t.*n
Run Code Online (Sandbox Code Playgroud)
将匹配以下(在'n'之前尽可能多的字符)
toooooooonoooooon
Run Code Online (Sandbox Code Playgroud)
但正则表达式
t.*?n
Run Code Online (Sandbox Code Playgroud)
只会匹配以下内容(在'n'之前尽可能少的字符)
toooooooon
Run Code Online (Sandbox Code Playgroud)
正则表达式总是渴望匹配.
你的表达说:
A 't', followed by *as few as possible* 'o's, followed by a 'n'.
这意味着任何必要的都将匹配,因为最后有一个'n',表达式渴望达到.匹配所有o是它成功的唯一可能性.
归档时间: |
|
查看次数: |
9946 次 |
最近记录: |