问题标签 [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.

0 投票
4 回答
382 浏览

regex - 使用正则表达式查找所有匹配项 - 贪婪和非贪婪!

取以下字符串:“互联网上的营销和板球”。

我想使用正则表达式查找“​​Ma”-any text-“et”的所有可能匹配项。所以..

  • 市场
  • 营销和板球
  • 互联网上的营销和板球

正则表达式Ma.*et返回“互联网营销和板球”。正则表达式Ma.*?et返回市场。但我想要一个返回所有 3 的正则表达式。这可能吗?

谢谢。

0 投票
4 回答
265 浏览

c# - 太贪心的正则表达式问题

我需要解析如下示例所示的字符串:

我想要的是提取一个数字。问题是输出1 The Brown不是简单的1.
我不明白为什么字母也包含在数字 ( [0-9]) 模式中。

有什么建议么?

0 投票
2 回答
5288 浏览

python - Python re.sub 使用非贪婪模式 (.*?) 和字符串结尾 ($) 它变得贪婪!

代码:

它应该返回<br><br />A,但它返回一个空字符串''

有什么建议吗?

0 投票
2 回答
924 浏览

php - preg_match_all - 正则表达式的贪婪部分,但最大化匹配数

我有以下要解析的html:

我可以用一个正则表达式将它解析成一个数组吗?

我试过

这只给了我一个条目,因为正则表达式的最后一部分是贪婪的,并且

这没有给我任何 之间的 HTML <h1>,因为表达式不是贪婪的。

如何使匹配后的部分变得贪婪,同时匹配尽可能多的事件?

补充评论:

  • 这个问题相当学术,我已经使用 pre_split 解决了这个问题,并且各种其他方法都可以工作,但也可能有缺点(例如 DOM 可能无法在我无法控制的无效 HTML 上工作)。然而,这是一个反复出现的问题,我有兴趣了解更多。
0 投票
3 回答
1292 浏览

php - 正则表达式 - 贪婪 - 匹配 HTML 标签、内容和属性

我正在尝试匹配来自 HTML 源的特定跨度标签。

标记的语言属性和内部 HTML 用作返回新字符串的函数的参数。

我想用被调用函数的结果替换旧的标签、属性和内容。

主题将是这样的:

为了提取 lang 属性的值和内容,我使用以下表达式对这些值进行分组:

由于正则表达式往往是贪婪的,这个表达式匹配完整的主题,而不仅仅是一个跨度标签及其内容。

我如何设法只匹配一个跨度标签?

0 投票
5 回答
6978 浏览

c# - 正则表达式贪心问题(C#)

我有一个像 "===text=== 和 ===text===" 这样的输入字符串,我想用相应的 html 标记替换 wiki 语法。

输入:

理想的输出:

但是使用以下代码,我得到了这个输出:

我知道问题是我的正则表达式匹配贪婪。但是如何让他们不贪心。

谢谢你和亲切的问候。丹尼

0 投票
7 回答
104070 浏览

regex - 贪婪 vs. 不情愿 vs. 占有欲的限定词

我找到了这个关于正则表达式的教程,虽然我直观地理解了“贪婪”、“不情愿”和“占有”限定词的作用,但我的理解似乎有一个严重的漏洞。

具体来说,在以下示例中:

解释提到吃掉整个输入字符串,字母被消耗,匹配器后退,“foo”最右边的出现被反刍,等等。

不幸的是,尽管有很好的比喻,但我仍然不明白什么被谁吃掉了……你知道另一个教程(简明地)解释正则表达式引擎的工作原理吗?

或者,如果有人可以用不同的措辞解释下一段,那将不胜感激:

第一个示例使用贪婪量词.*来查找“任何东西”,零次或多次,后跟字母"f", "o", "o"。因为量词是贪婪的,.*所以表达式的一部分首先吃掉整个输入字符串。此时,整体表达式无法成功,因为最后三个字母("f", "o", "o")已经被 [by who?] 消耗掉了。因此,匹配器慢慢地后退 [从右到左?] 一次一个字母,直到最右边出现的"foo"被反刍 [这是什么意思?],此时匹配成功并且搜索结束。

然而,第二个例子是不情愿的,所以它首先消耗[由谁?]“无”。因为"foo"没有出现在字符串的开头,所以它被迫吞下[谁吞下?]第一个字母(an "x"),这会在 0 和 4 处触发第一次匹配。我们的测试工具继续这个过程,直到输入字符串用完. 它在 4 点和 13 点找到另一个匹配项。

第三个示例找不到匹配项,因为量词是所有格。在这种情况下,整个输入字符串被.*+[how?] 使用,没有留下任何东西来满足表达式末尾的“foo”。使用所有格量词表示你想抓住所有东西而不退缩[退缩是什么意思?];在没有立即找到匹配的情况下,它将优于等效的贪婪量词。

0 投票
3 回答
573 浏览

php - 正则表达式和 php 问题,需要非贪婪搜索!

我在尝试编写非贪婪的正则表达式语句时遇到了麻烦。

这是我的字符串:

这是我的正则表达式查询:

问题是我需要地址,而不是字符串中的名称。所以我需要正则表达式查询是非贪婪的,并且采用最近的<strong></strong>而不是最远的。

在我的搜索字符串中也有多个实例,所以它必须一次匹配多个实例,而不是仅仅.*在它前面添加一个(贪婪的)东西。

所以它必须匹配这个的所有实例,并提取地址,而不是名称:

提前致谢!

0 投票
2 回答
524 浏览

regex - 替代贪婪匹配

我想对“a”的零到“m”个连续出现或“b”的零到“n”个连续出现的替代进行贪婪匹配。如果我做

它不起作用,因为当我有 'b' 序列时,它将与 'a{,m}' 匹配,而替代的 'b{,n}' 将不会被查看,也不会是贪婪匹配.

0 投票
5 回答
83590 浏览

regex - 正则表达式中的问号

我正在阅读正则表达式参考,我正在考虑?和 ??人物。你能用一些例子解释一下它们的用处吗?我对他们不够了解。

谢谢你