当前位置:  开发笔记 > 编程语言 > 正文

正则表达非常贪婪

如何解决《正则表达非常贪婪》经验,为你挑选了2个好方法。

我有以下文字

tooooooooooooon

根据我正在阅读的这本书,当?任何量词之后,它变得非贪婪.

我的正则表达式to*?n仍在回归tooooooooooooon.

它应该回归ton不应该吗?

知道为什么吗?



1> Gareth..:

正则表达式只能匹配实际存在的文本片段.

因为字符串'ton'不存在于字符串中的任何位置,所以它不能是匹配的结果.匹配只返回原始字符串的子字符串

编辑:要清楚,如果你使用下面的字符串,额外的'n'

toooooooonoooooon

这个正则表达式(没有指定'o')

t.*n

将匹配以下(在'n'之前尽可能多的字符)

toooooooonoooooon

但正则表达式

t.*?n

只会匹配以下内容(在'n'之前尽可能少的字符)

toooooooon



2> Tomalak..:

正则表达式总是渴望匹配.

你的表达说:

A 't', followed by *as few as possible* 'o's, followed by a 'n'.

这意味着任何必要的都将匹配,因为最后有一个'n',表达式渴望达到.匹配所有o是它成功的唯一可能性.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有