问题标签 [regex-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.
regex - 为什么正则表达式默认是贪婪的?
对于编写正则表达式的初学者来说,这似乎是一个巨大的困惑源,可能会导致隐藏的性能问题,而且典型的用例似乎是非贪婪的。
这仅仅是出于遗留原因(这是它最初是如何完成的,并且每个实现都复制它),还是有它的原因?
regex - 在正则表达式的上下文中,“懒惰”和“贪婪”是什么意思?
这两个术语是什么意思?
regex - Xcode 惰性正则表达式
我正在尝试替换这样的东西:
和:
在 Xcode 中。所以这些是源文件......我敢打赌正则表达式看起来像这样:
但我需要这个懒惰。否则 .+) 将匹配最后一个括号出现而不是第一个(例如,在给定以下字符串的情况下,最后的两个括号都将替换为单个括号:"NSLog(@"%@", NSSomeFunction(@"hey", @ “哈哈”))” )。
如何做这样的懒惰搜索?我认为您可以使用修饰符 /U(不贪婪)在珍珠中做到这一点。尽管 Xcode 似乎不支持这一点。
regex - 正则表达式表现得很懒惰,应该是贪婪的
我认为默认情况下我的正则表达式会表现出我想要的贪婪行为,但它不在以下代码中:
输出:
现在我意识到,如果我只是按长度降序对关键字进行排序,我可以让它适用于这个小例子,但是
- 我想了解为什么这不能按预期工作,并且
- 我正在处理的实际项目在正则表达式中有更多的单词,并且保持它们按字母顺序排列很重要。
所以我的问题是:为什么这是懒惰的,我该如何解决?
regex - 非贪婪正则表达式匹配、JavaScript 和 ASP
我需要做一个非贪婪的比赛,希望有人能帮助我。我有以下内容,我正在使用 JavaScript 和 ASP
上面的匹配,匹配一个 href 标记的第一个开始。我需要它只匹配作为/pdf/
文件夹一部分的最后一个 href。
有任何想法吗 ?
javascript - 如何使正则表达式变为非贪婪?
我正在使用 jQuery。我有一个带有特殊字符块(开始和结束)的字符串。我想从那个特殊字符块中获取文本。我使用正则表达式对象进行字符串查找。但是当有两个或更多特殊字符时,如何告诉 jQuery 查找多个结果?
我的 HTML:
和我的 JavaScript 代码:
我的结果是:[|cơ thử|nghiệm|] thị trường [|test2|đây là test lần 2|] chứng khoán [|Mỹ|day la nuoc my|]。但这不是我想要的结果:(。如何获得时间 1 的 [text] 和时间 2 的 [demo] ?
在网上搜索信息后,我刚刚完成了我的工作^^。我制作这样的代码:
- 我的结果是:[|cơ thử|nghiệm|],[|test2|đây là test lần 2|] 这是对的!但我真的不明白这一点。你能回答我为什么吗?
regex - 使用非贪婪限定符还是前瞻更好?
我有一个可能很大的文本块来搜索 的实例[[...]]
,其中...
可以是任何东西,包括其他括号(尽管它们不能嵌套; after 的第一个实例]]
结束[[
匹配)。
我可以想出两种方法来匹配这个文本:
- 使用非贪婪限定符:
/\[\[.+?\]\]/
- 使用前瞻:
/\[\[(?:(?!\]\]).)+\]\]/
从性能的角度来看,一个选择本质上是否比另一个更好(我会说第一个可能更具可读性)?我记得读过最好不要使用非贪婪的限定符,但我现在找不到来源。
regex - 如何在 grep 中进行非贪婪匹配?
我想 grep 最短的匹配,模式应该是这样的:
... 表示任何字符,输入是多行。
c# - 正则表达式太贪心
我正在编写一个正则表达式来匹配来自 IMDb 音轨数据文件的数据。我的正则表达式大部分都在工作,尽管它们在我的命名组中插入了太多文本。以下面的正则表达式为例:
表演者组包括字符串' (qv)
以及表演者的姓名。不幸的是,由于记录的格式不一致,一些表演者的名字用单引号引起来,而另一些则没有。这意味着就正则表达式而言,它们是可选的。
我尝试使用?>
组说明符将最后一组标记为贪婪组,但这似乎对结果没有影响。
我可以通过更改执行者组以匹配一小部分字符来改进结果,但这会降低我正确解析名称的机会。此外,如果我只是排除撇号字符,我将无法解析包含撇号的乐队名称,例如 Elia 的 Lonely Friends Band,他们在Resident Evil: Apocalypse中表演了Run For Your Life。
更新: 这是正则表达式应按要求匹配的示例输入行。还提供了我现有的正则表达式无法处理的其他格式。
regex - 正则表达式不够贪婪
在出现新情况之前,我有以下正则表达式运行良好
基本上,它用于 URL,在 U= 或 URL= 之后抓取所有内容并在 URL 匹配中返回它
所以,对于以下
http://localhost?a=b&u=http://otherhost?foo=bar
URL = http://otherhost?foo=bar
不幸的是,出现了一个奇怪的案例
http://localhost?a=b&u=http://otherhost?foo=bar&url=http://someotherhost
理想情况下,我希望 URL 为“ http://otherhost?foo=bar&url=http://someotherhost ”,而只是“ http://someotherhost ”
编辑:我认为这解决了它......虽然它不漂亮