正则表达式 (\S+?) 与 (\S+)) [重复]
Posted
技术标签:
【中文标题】正则表达式 (\\S+?) 与 (\\S+)) [重复]【英文标题】:Regular Expression (\S+?) vs (\S+)) [duplicate]正则表达式 (\S+?) 与 (\S+)) [重复] 【发布时间】:2018-03-02 01:01:27 【问题描述】:下面两个表达式有什么区别?
1.(\S+)
2.(\S+?)
如果有人能解释一下,我将不胜感激。
谢谢,
【问题讨论】:
regex101.com 基于我在这里运行的快速测试,(\S+)
会找到你的整个单词,(\S+?)
会找到你的单个字符。不过,我对自己的答案没有足够的信心将其发布为实际答案。
见***.com/questions/25528452/…
【参考方案1】:
第一种意味着匹配一个非空白字符,在一次到无限次之间,尽可能多,根据需要返回(贪婪).
第二个意思是匹配一个非空白字符的单个字符,在一次到无限次之间,尽可能少,根据需要扩展(惰性) .
区别在于贪婪或懒惰的重复。来自 Regex Buddy 帮助文件:
贪婪量词会首先尝试尽可能多地重复标记,然后随着引擎回溯以找到整体匹配,逐渐放弃匹配。惰性量词将首先根据需要重复标记几次,然后随着引擎通过正则表达式回溯以找到整体匹配,逐渐扩大匹配。
如下图所示:
【讨论】:
两张图片看起来是一样的,尽管它们的网址不同。 @Arjan:谢谢。不知何故设法将相同的图像粘贴了两次。嗬!固定的。感谢您指出这一点。以上是关于正则表达式 (\S+?) 与 (\S+)) [重复]的主要内容,如果未能解决你的问题,请参考以下文章