【问题标题】:Regular Expression (\S+?) vs (\S+)) [duplicate]正则表达式 (\S+?) 与 (\S+)) [重复]
【发布时间】:2018-03-02 01:01:27
【问题描述】:

下面两个表达式有什么区别? 1.(\S+) 2.(\S+?)

如果有人能解释一下,我将不胜感激。

谢谢,

【问题讨论】:

标签: regex


【解决方案1】:

第一种意味着匹配一个非空白字符,在一次到无限次之间,尽可能多,根据需要返回(贪婪).

第二个意思是匹配一个非空白字符的单个字符,在一次到无限次之间,尽可能少,根据需要扩展(惰性) .

区别在于贪婪或懒惰的重复。来自 Regex Buddy 帮助文件:

贪婪量词会首先尝试尽可能多地重复标记,然后随着引擎回溯以找到整体匹配,逐渐放弃匹配。惰性量词将首先根据需要重复标记几次,然后随着引擎通过正则表达式回溯以找到整体匹配,逐渐扩大匹配。

如下图所示:

【讨论】:

  • 两张图片看起来是一样的,尽管它们的网址不同。
  • @Arjan:谢谢。不知何故设法将相同的图像粘贴了两次。嗬!固定的。感谢您指出这一点。
猜你喜欢
  • 1970-01-01
  • 2013-03-15
  • 1970-01-01
  • 2014-09-26
  • 1970-01-01
  • 1970-01-01
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多