问题标签 [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.
regex - 需要修改非贪婪 grep 的行为
我正在尝试清除大量注入客户博客的垃圾邮件。其中一个问题是,最初进行注入的黑客这样做的方式实际上是以格式错误的多嵌入链接结束的,所以我很难以简洁的方式抓住它们。
我的想法是将帖子表中的所有链接转储到一个文本文件中,然后从该列表中删除有效链接,然后从那里创建一个 bash 脚本,一次删除一行恶意链接。我试图使用非贪婪的 grep 来转储链接,否则如果帖子中有多个链接,它将从第一个链接的开头到最后一个链接的结尾。这是我使用的行:
当它试图解析嵌入在其他链接中的链接时,就会出现问题。例如,我得到这个:
从这样的部分:
不过,并非所有链接都像这样被破坏,如果我清除上面命令的输出,我认为这将使追踪碎片变得非常困难。我认为我需要的是抓住整个街区的东西(即,将开口<a href
与相同数量的关闭匹配</a>
),或者只是可能的最小内部匹配(即从内到外的贪婪),然后我多次通过,但我也愿意接受其他建议。对此有什么想法吗?谢谢!
python - Python 非贪婪正则表达式来清理 xml
我有一个“xml 文件”文件,其中包含一些不需要的字符
我认为以下非贪婪替换会删除未正确封装的字符<sometag></sometag>
这个正则表达式似乎只能找到
我做错了什么[[]]
?</tag>[[]]<tagTwo>
编辑: 这个问题的动机已经解决(见评论,我在 xml 文件中有一个杂散的 & 导致它无法解析 - 它与我要删除的字符无关)。但是,我仍然对正则表达式是否可行(以及我的尝试有什么问题)感到好奇,所以我没有删除这个问题。
regex - Scala RegexParsers 中的非贪婪匹配
假设我正在用 Scala 编写一个基本的 SQL 解析器。我有以下内容:
当尝试将 selectstatement 与 匹配时SELECT foo FROM bar
,如何防止 selectclause 由于rep(token)
in吞噬整个短语~ tokens
?
换句话说,如何在 Scala 中指定非贪婪匹配?
澄清一下,我完全知道我可以在字符串模式本身中使用标准的非贪婪语法 (*?) 或 (+?),但我想知道是否有办法在 def 标记内的更高级别指定它。例如,如果我这样定义令牌:
那么如何为 def 令牌中的 rep(token) 指定非贪婪匹配?
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 | |
java - Java中的非贪婪正则表达式
我有下一个代码:
并有下一个输出:
但在我看来,它必须是:
有人请解释我为什么会这样?
python - 使用权重和最小值分配整数?
在一个类似的问题中,我询问了如何使用权重分配整数。我很好奇如果对每个分布“桶”施加最小值,人们将如何解决这个问题。通过施加最小值,这似乎是一个更加困难的问题。这是我的贪婪尝试,但不起作用:
目前,这些值被分配为 [7, 5, 4],即 16,比我们必须分配的多 6 个。输出应该是 [1, 5, 4] 因为这满足所有列的最低要求。随着我们必须分配的价值的增长,分布应该越来越接近正确的加权分布。例如,通过分配 1000,算法正确地将值分配为 [714, 143, 143]。
作为旁注,我的目的是在几列之间分配可用空间(宽度)。所有列都具有“通过”并显示至少部分数据所需的最小大小,并且随着可用空间的增长,某些列更需要空间。我提到这是该算法在现实生活中的一种用途,但我不希望这是对 GUI 设计的讨论。
这个问题有哪些解决方案?越简单越好。
python - 我可以使用 dotall 进行非贪婪的正则表达式吗?
我想匹配 dotall 和 non-greedy。这就是我所拥有的:
然而,这并不是不贪婪。此数据与我预期的不匹配:
我不明白为什么。
我认为我在上面的正则表达式中所说的是:
以“img”开头,然后允许 0 个或多个任何字符,包括换行符,然后查找至少 1 个“onmouseover”,然后允许 0 个或多个任何字符,包括换行符,然后是“a”
为什么这不像我预期的那样工作?
关键点:必须启用dotall
ruby - Ruby 中的非贪婪正则表达式:pty 和 expect
我正在做一个小测试来尝试 Ruby 的 pty,但我做错了。我认为主要问题是正则表达式是非贪婪的。
这是一个名为inputs.rb
:
这是一个名为test.rb
:
不幸的是,在打印输出时,我得到了这个:
The whole output is ||||
password1234
Thank you! Your password is: p||||
output1 = |
|
output1 = |password1234
|
output1 = |Thank you! Your password is: p|
为什么是它
Thank you! Your password is: p||||
而不是
Thank you! Your password is: password1234||||
?
这是正常的吗?如果是这样:有什么办法可以改变这种行为?
我尝试过的事情:
- rubular 上的正则表达式:它有效。
- 所有评论的替代方案:它们都不起作用(获取完整的密码)。
- http://www.42klines.com/2010/08/14/what-to-expect-from-the-ruby-expect-library.html
Ruby 版本:1.8.7
Ubuntu:10.04 (Lucid Lynx)
我会很感激你的任何想法。非常感谢。
regex - Perl 正则表达式替换最后一次出现
我有这个输入:
我想删除GXXXXVXX
字符串中的所有结尾。
当我使用此代码时:
结果是:
似乎每次正则表达式".G"
都用空白删除它。我不明白。
我想要这个:
我怎么能在正则表达式中做到这一点?
regex - 如何编写匹配非贪婪的正则表达式?
我需要有关与非贪婪选项匹配的正则表达式的帮助。
匹配模式是:
要匹配的文本是:
<img
此表达式匹配从到最后的所有文本>
。>
我需要它与在 initial 之后遇到的第一个匹配<img
,所以在这里我需要得到两个匹配而不是我得到的一个。
我尝试了所有non-greedy?
的组合,但没有成功。