问题标签 [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 投票
2 回答
1117 浏览

python - Python 非贪婪正则表达式来清理 xml

我有一个“xml 文件”文件,其中包含一些不需要的字符

我认为以下非贪婪替换会删除未正确封装的字符<sometag></sometag>

这个正则表达式似乎只能找到 我做错了什么[[]]</tag>[[]]<tagTwo>

编辑: 这个问题的动机已经解决(见评论,我在 xml 文件中有一个杂散的 & 导致它无法解析 - 它与我要删除的字符无关)。但是,我仍然对正则表达式是否可行(以及我的尝试有什么问题)感到好奇,所以我没有删除这个问题。

0 投票
1 回答
154 浏览

php - 正则表达式不匹配,贪婪

我尝试将字符串中的两个部分与 PHP 中的正则表达式匹配。我认为贪婪有问题。我希望第一个正则表达式(见评论)给我前两个捕获,作为第二个正则表达式,但仍然捕获两个字符串。我究竟做错了什么?

我正在尝试获取+123(如果cd:存在,如在第一个字符串中)和456.

输出是:

没有第四行,因为cd:第二个字符串中不存在。

预期输出(因为我不是专家),第一行与实际输出不同:

0 投票
3 回答
2641 浏览

regex - 正则表达式仅匹配包含特定字符串的整个标签

我目前的正则表达式模式:

要搜索的 HTML 片段:

如果我针对上面的 html 片段运行它,它将匹配<p>somethin</p>我所需要的。

但是,如果我将模式嵌入字符串从“somethin”更改为“nuthin”,当我只想要第二个标签集时,它将完全匹配两个 p 标签。如果我嵌套 p 标签而不是将它们放在一行上,则行为是相同的,这也是需要的。

谢谢。

0 投票
4 回答
215 浏览

regex - 不能让 Perl 正则表达式不贪婪

无论我做什么,我的正则表达式都匹配该行中的最后一组字母字符。我希望它只匹配第一次出现。

我尝试过使用非贪婪运算符,但它顽固地匹配最右边的字母字符集,在这种情况下,$1 的值是“Trig”,这不是我想要的。我希望 1 美元是“02.04.07.06 Geerite”。

代码

资源

02.04.07.06 Geerite Cu8S5 R 3m、R 3m 或 R 32 Trig

输出

NT2 32 三角 | |

所以换句话说,我想要这个输出:

NT2 02.04.07.06 Geerite | |

0 投票
2 回答
701 浏览

regex - 为什么我的 Perl 正则表达式不匹配简单的主机名?

我无法提取可能既是 FQDN 又是简单主机名的主机名

例如使用 sed 它工作正常:

但是在 Perl 中,我只得到它的 FQDN:

我为 test_serv1 尝试了不同的组合,但它不起作用,为什么?

0 投票
3 回答
348 浏览

java - Java 正则表达式组

我需要一个表达式来提取一些替代方案。输入是:

我需要 11 33 和 55 但不是 77。

我先试过:

所以我只有 55 个。但是懒惰(非贪婪)

我只有11个。如何获得所有?

问候托马斯

0 投票
1 回答
665 浏览

xml - 具有重复标签的 XML 文件中的 Perl 正则表达式多行匹配

最终,我试图将 XML 文件的所有非空元素包装在

这是我正在测试我的代码的示例:

它模仿了我必须处理的 XML,但实际上,一些元素包含多行文本,这使得这次冒险更加有趣......

我构建了一个正则表达式,只要没有重复就可以工作:

但在此示例中失败,如下所示:

让它不贪婪的最好方法是什么,或者,也许是一个与我不同的更好的解决方案?

先感谢您。

PS我相信我最终想通了。以下代码似乎可以解决问题:

再次感谢所有回答我问题的人,我仍然愿意接受更好的解决方案......

0 投票
2 回答
1030 浏览

regex - Perl 和正则表达式;$1 为空

脚本:

输出:

^^^^^^^^

这只是一个临时字符串,只是为了好玩->true<-

^^^^^^^^

问题:

  1. 为什么 1 美元是空的?
  2. 如何知道aString匹配了多少子表达式?

请澄清。

0 投票
3 回答
511 浏览

java - matcher.find() 匹配太多

我对我的 Matcher 的 find() 方法返回的匹配项比我认为我的正则表达式创建的更多匹配项感到困惑。下面是我编写的 JUnit 测试,试图解决这个问题。所有的测试都通过了,但我不明白为什么我的 find() 返回匹配其 group(1) 值为 null 或空的匹配项(请参阅 //Why more find()s than actual matches?common in the code)?

如果有的话,我可以对我的正则表达式做些什么来避免血腥的非空或空检查?

0 投票
1 回答
533 浏览

regex - 使用 grep 解析多行字符串的非贪婪模式

我有一个文件:

其中rsN是随机的东西。

我正在尝试使用a获取最后一行,使用b获取第一行:

和:

但显然我错过了一些东西。

谢谢。