问题标签 [non-greedy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1612 浏览

c# - 正则表达式仅在左侧贪婪(.net)

我正在尝试捕获两个字符串之间的匹配。

例如,我正在寻找出现在 Q 和 XYZ 之间的所有文本,使用“最快”匹配(不继续向外扩展)。这个字符串:

马戏团 Q 你好Q SOMETEXT XYZ今天是一天 XYZ 好的 XYZ

应该返回:

Q 某些文本 XYZ

但相反,它返回:

Q 你好 Q SOMETEXT XYZ

这是我正在使用的表达式: Q.*?XYZ

它向左走得太远了。当我在星号后使用问号时,它在骑行方面工作正常。我怎样才能对左侧做同样的事情,并在我击中第一个左 Q 后停止,使其与右侧的工作方式相同?我已经尝试过http://msdn.microsoft.com/en-us/library/az24scfc.aspx中的问号和其他符号,但有些东西我只是想不通。

我是一个正则表达式新手,所以对此的任何帮助将不胜感激!

0 投票
1 回答
192 浏览

ruby - ruby 正则表达式查找嵌套匹配

我的正则表达式是

和测试字符串是

我得到的比赛是

但是还有另一个较短的匹配“编程测试这个”,这个正则表达式无法找到,我使用扫描方法找到所有匹配但甚至无法捕获这个。

任何帮助是极大的赞赏

0 投票
1 回答
1753 浏览

regex - 凯特的前瞻模式

我正在为一本法律书籍编制一个案例表。我已将其转换为 HTML,因此我可以使用标签进行搜索和替换操作,我目前在 Kate 工作。正文引用案例名称,案例引用在脚注中,例如

<i>Smith v Jones</i>127 ......... [other stuff including newline characters].......</br>127 (1937) 173 ER 406;

我已经能够在 Kate 中进行前瞻性工作,使用:

<i>.*</i>([0-9]{1,4}) .+<br/>\1 .*<br/>

...但我遇到了贪婪的问题。

文本很乱,所以我真的需要一步一步地找到匹配项,而不是依赖批处理。

是否有支持前瞻和非贪婪运算符的 Linux(或 Windows)文本编辑器,或者我将不得不尝试 grep 或 sed?

0 投票
1 回答
382 浏览

c# - 为什么这个正则表达式只返回一个匹配项?

这是我的输入:

xxx999xxx888xxx777xxx666yyy

xxx222xxx333xxx444xxx555yyy

这是表达式:

它返回444

我希望它同时返回 444 和 777,但我对此无能为力。

我有排除,使其仅匹配左侧最里面的内容(当我只搜索一个结果时效果很好,这是大多数时间)。但是,我有一种感觉,这与它在这种情况下跳过第一个结果的原因有关。我不知道从这里去哪里。

我一直在这里测试: http : //regexlib.com/RETester.aspx(启用了“SingleLine”和“Explicit Capture”)

任何意见,将不胜感激!

0 投票
2 回答
584 浏览

c# - 为什么这个单行正则表达式不返回所有匹配项?

我刚刚问了一个与此类似的问题,并且有一个出色而准确的答案,但事实证明我现在遇到了一个全新的问题。原来我有一行相关的输入。我不确定如何以抽象的方式问这个问题,所以我将直接进入我的输入:

已编辑以提供更好的示例

bear999bear888bear777bear666fox---bear222bear333bear444bear555fox

(标记之间的项目不一定是数字)

这是表达式(EDITED 以匹配更新的输入示例):

它返回444。有没有办法可以调整它以返回444 和 777?它似乎跳过了第一场比赛,只支持后者。我有排除,使其仅匹配左侧的最里面。

我一直在这里测试: http ://regexlib.com/RETester.aspx

当我将它分成两行并打开多行时,这非常有用。为什么当输入在单行时它会停止工作?

任何意见,将不胜感激!

0 投票
3 回答
1196 浏览

python - 非贪婪的python正则表达式

我正在尝试通过一些正则表达式来解决问题;我正在使用python。

我现在的任务是抓取报纸文章并寻找人们死亡的实例。一旦我有一篇相关的文章,我就会尝试为其他一些事情计算死亡人数。我正在尝试提出一些模式,但特别是我遇到了困难。获取此示例文章部分:

萨那,10 月 21 日(路透社)——部落消息人士和当地官员说,周日,美国无人机在也门对一辆汽车发动明显袭击,导致三名被认为是基地组织武装分子的男子丧生。

我用来捕获“三”的代码首先对整个文档进行替换,以便在应用任何模式之前,“三”变为“3”。与此示例相关的模式是这样的:

这个想法是这个模式将以一个数字开头,后跟一个可选名词,例如列出的名词之一,然后在找到“死亡”或“死亡”之前有最少的混乱。我想留出空间,以便这种模式能够捕捉到:

并且仍然捕获示例中的实例:

问题是我使用的模式是从文章的第一部分收集日期,并返回 21 的计数。到目前为止,没有多少摆弄使我能够将范围限制在 men 旁边的数字,然后是分词短语,然后是相关的“被杀”。

任何帮助将非常感激。在 RE 方面,我绝对不是专家。

0 投票
1 回答
722 浏览

python - Python 正则表达式速度 - 贪婪与非贪婪

我在 Python 中进行了几个正则表达式替换

在许多大文件上。显然,如果我使正则表达式不贪婪(使用 a ?),它不会改变匹配的内容(如\w!= \s),但它会使代码运行得更快吗?换句话说,对于非贪婪的正则表达式,Python 是否从匹配的第一个字符开始工作,而不是从文档末尾返回到该字符,或者这是一个幼稚的观点?

0 投票
1 回答
678 浏览

qt - QRegExp:个体量词不可能是非贪婪的,但有什么好的替代品呢?

我正在尝试编写将结尾附加_my_ending到文件名并且不更改文件扩展名的代码。

我需要得到的例子:

我有一些经验PCRE,使用它是一项微不足道的任务。由于缺乏Qt经验,一开始我写了如下代码:

此代码不起作用(根本不匹配),然后我在文档中发现

非贪心匹配不能应用于单个量词,但可以应用于模式中的所有量词

如您所见,在我的正则表达式中,我试图通过在第一个量词之后+添加来减少?它的贪婪。这在 中不受支持QRegExp

这对我来说真的很令人失望,因此,我必须编写以下丑陋但有效的代码:

但是有更好的解决方案吗?我喜欢 Qt,但我在其中看到的一些东西似乎令人沮丧。

0 投票
3 回答
27484 浏览

c# - 正则表达式非贪婪(懒惰)

我正在尝试非贪婪地解析出 TD 标签。我从这样的事情开始:

我使用以下作为我的正则表达式:

记录返回如下:

为什么不拆分第一个完整结果(以“stuff”开头的结果)?如何调整正则表达式以拆分 TD 标签的所有实例,无论是否带有参数?

0 投票
3 回答
512 浏览

regex - Perl中的不贪婪的正则表达式

我正在尝试捕获这样的字符串:

如何捕获子字符串:

和标签名称:

到目前为止我的尝试:

但它总是贪婪并捕获_NameOfTag_ != null