问题标签 [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.
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中的问号和其他符号,但有些东西我只是想不通。
我是一个正则表达式新手,所以对此的任何帮助将不胜感激!
ruby - ruby 正则表达式查找嵌套匹配
我的正则表达式是
和测试字符串是
我得到的比赛是
但是还有另一个较短的匹配“编程测试这个”,这个正则表达式无法找到,我使用扫描方法找到所有匹配但甚至无法捕获这个。
任何帮助是极大的赞赏
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?
c# - 为什么这个正则表达式只返回一个匹配项?
这是我的输入:
xxx999xxx888xxx777xxx666yyy
xxx222xxx333xxx444xxx555yyy
这是表达式:
它返回444。
我希望它同时返回 444 和 777,但我对此无能为力。
我有!排除,使其仅匹配左侧最里面的内容(当我只搜索一个结果时效果很好,这是大多数时间)。但是,我有一种感觉,这与它在这种情况下跳过第一个结果的原因有关。我不知道从这里去哪里。
我一直在这里测试: http : //regexlib.com/RETester.aspx(启用了“SingleLine”和“Explicit Capture”)
任何意见,将不胜感激!
c# - 为什么这个单行正则表达式不返回所有匹配项?
我刚刚问了一个与此类似的问题,并且有一个出色而准确的答案,但事实证明我现在遇到了一个全新的问题。原来我有一行相关的输入。我不确定如何以抽象的方式问这个问题,所以我将直接进入我的输入:
(已编辑以提供更好的示例)
bear999bear888bear777bear666fox---bear222bear333bear444bear555fox
(标记之间的项目不一定是数字)
这是表达式(EDITED 以匹配更新的输入示例):
它返回444。有没有办法可以调整它以返回444 和 777?它似乎跳过了第一场比赛,只支持后者。我有!排除,使其仅匹配左侧的最里面。
我一直在这里测试: http ://regexlib.com/RETester.aspx
当我将它分成两行并打开多行时,这非常有用。为什么当输入在单行时它会停止工作?
任何意见,将不胜感激!
python - 非贪婪的python正则表达式
我正在尝试通过一些正则表达式来解决问题;我正在使用python。
我现在的任务是抓取报纸文章并寻找人们死亡的实例。一旦我有一篇相关的文章,我就会尝试为其他一些事情计算死亡人数。我正在尝试提出一些模式,但特别是我遇到了困难。获取此示例文章部分:
萨那,10 月 21 日(路透社)——部落消息人士和当地官员说,周日,美国无人机在也门对一辆汽车发动明显袭击,导致三名被认为是基地组织武装分子的男子丧生。
我用来捕获“三”的代码首先对整个文档进行替换,以便在应用任何模式之前,“三”变为“3”。与此示例相关的模式是这样的:
这个想法是这个模式将以一个数字开头,后跟一个可选名词,例如列出的名词之一,然后在找到“死亡”或“死亡”之前有最少的混乱。我想留出空间,以便这种模式能够捕捉到:
并且仍然捕获示例中的实例:
问题是我使用的模式是从文章的第一部分收集日期,并返回 21 的计数。到目前为止,没有多少摆弄使我能够将范围限制在 men 旁边的数字,然后是分词短语,然后是相关的“被杀”。
任何帮助将非常感激。在 RE 方面,我绝对不是专家。
python - Python 正则表达式速度 - 贪婪与非贪婪
我在 Python 中进行了几个正则表达式替换
在许多大文件上。显然,如果我使正则表达式不贪婪(使用 a ?
),它不会改变匹配的内容(如\w
!= \s
),但它会使代码运行得更快吗?换句话说,对于非贪婪的正则表达式,Python 是否从匹配的第一个字符开始工作,而不是从文档末尾返回到该字符,或者这是一个幼稚的观点?
qt - QRegExp:个体量词不可能是非贪婪的,但有什么好的替代品呢?
我正在尝试编写将结尾附加_my_ending
到文件名并且不更改文件扩展名的代码。
我需要得到的例子:
我有一些经验PCRE
,使用它是一项微不足道的任务。由于缺乏Qt经验,一开始我写了如下代码:
此代码不起作用(根本不匹配),然后我在文档中发现
非贪心匹配不能应用于单个量词,但可以应用于模式中的所有量词
如您所见,在我的正则表达式中,我试图通过在第一个量词之后+
添加来减少?
它的贪婪。这在 中不受支持QRegExp
。
这对我来说真的很令人失望,因此,我必须编写以下丑陋但有效的代码:
但是有更好的解决方案吗?我喜欢 Qt,但我在其中看到的一些东西似乎令人沮丧。
c# - 正则表达式非贪婪(懒惰)
我正在尝试非贪婪地解析出 TD 标签。我从这样的事情开始:
我使用以下作为我的正则表达式:
记录返回如下:
为什么不拆分第一个完整结果(以“stuff”开头的结果)?如何调整正则表达式以拆分 TD 标签的所有实例,无论是否带有参数?
regex - Perl中的不贪婪的正则表达式
我正在尝试捕获这样的字符串:
如何捕获子字符串:
和标签名称:
到目前为止我的尝试:
但它总是贪婪并捕获_NameOfTag_ != null