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

regex - 正则表达式表现得很懒惰,应该是贪婪的

我认为默认情况下我的正则表达式会表现出我想要的贪婪行为,但它不在以下代码中:

输出:

现在我意识到,如果我只是按长度降序对关键字进行排序,我可以让它适用于这个小例子,但是

  • 我想了解为什么这不能按预期工作,并且
  • 我正在处理的实际项目在正则表达式中有更多的单词,并且保持它们按字母顺序排列很重要。

所以我的问题是:为什么这是懒惰的,我该如何解决?

0 投票
2 回答
4843 浏览

user-agent - 如何在 NetLogo 中创建迷宫墙?

我正在尝试创建一个带有 2 个出口的 5x5 网格并在其中放置一些墙壁。换句话说,我想创建一个迷宫或迷宫。

我想知道是否有办法使边界线变粗或仅更改补丁一侧的颜色。

我想只放一个特工进去,通过奖励他一些积分让他找到出口。(Q-学习算法)

有人有想法吗?

如果这是不可能的,你能建议类似的代码吗?

这是我要创建的示例:

替代文字

如被问及,我已经发布了一些我的工作(尽管手动完成这项工作似乎效率低下)。这是我到目前为止所拥有的:

同样,这是一种低效的方法。如果我继续使用这种方法,我怎样才能将 4 个补丁合并为 1 个,以便我可以进入我的代理并居中?

先感谢您。

0 投票
2 回答
4864 浏览

algorithm - 点覆盖问题

我最近在测试中遇到了这个问题:给定一组点m(都在 x 轴上)和一组 带有端点 [ l, r ]的线(再次在 x 轴上),找到n使得所有点都被一条线覆盖。证明您的解决方案总能找到最小子集。

我为它编写的算法的效果是:(比如说,行存储为数组,左端点在位置 0,右端点在位置 1)

我只是不确定这是否总能找到最小的解决方案。这是一个简单的贪心算法,所以我的直觉告诉我它不会,但是我的一个朋友在这方面比我好得多,他说对于这个问题,像这样的贪心算法总是能找到最小的解决方案。为了证明我的总是找到最小的解决方案,我做了一个非常手动的矛盾证明,我做了一个可能根本不正确的假设。我完全忘记了我做了什么。

如果这不是一个最小的解决方案,有没有办法在少于 O(n!) 的时间内完成它?

谢谢

0 投票
1 回答
256 浏览

regex - 在正则表达式中,它被称为惰性还是非贪婪?

我最初听到它是不贪婪的。然后在“网络上”的引用中,我看到它被称为懒惰。它是哪一个?

0 投票
1 回答
388 浏览

regex - 使用 preg_match 查找具有特定后缀的标签

我正在寻找在 PHP 中使用正则表达式以特定方式结束的标签。然而,我所有的尝试要么导致太多,要么太少。

例如,在以下字符串中,我想匹配“bar”,因为它位于以“suffix”结尾的标签中。

但是上面的行导致'foo>

0 投票
2 回答
2756 浏览

python - Python re 中的贪婪与非贪婪匹配

请帮助我发现这是否是 Python (2.6.5) 中的错误,是我编写正则表达式的能力,还是我对模式匹配的理解。

(我接受一个可能的答案是“升级你的 Python”。)

我正在尝试解析 Yubikey 令牌,允许使用可选的附加功能。

当我使用此正则表达式匹配没有任何可选附加项的令牌时(即,仅包含与两个捕获组匹配的内容),匹配失败:

但是,如果我让第一组不贪婪:

它成功了。

所以,好的,它正在工作,但我原以为这两个正则表达式之间最终结果的唯一区别是性能。

Expresso 和 Regex Coach 都喜欢这两种模式。

我错过了什么?


这是我正在测试的两个字符串。

没有可选的附加功能(可能失败的附加功能):

带有可选的附加功能(到目前为止还没有失败;实际的选项卡在此处显示为“_”):


我尝试使用 Alex Martelli 的建议来重现它,并且它在原始 Python 环境中不会失败,所以我将重新访问我的代码(我实际上是在 yubikey-python 上进行黑客攻击);我会在一天左右回来报告。


我向大家道歉。我无法重现该问题。getpass当它发生时,我正在通过;读取输入。我怀疑意外的外键击中了。

我要结束这个问题。如果支持该问题的人希望取消他们的投票,那是公平的。

很抱歉。

0 投票
2 回答
823 浏览

c# - 从页面获取标题的不贪婪的正则表达式

我想使用 C# 获取网页的标题。所以我请求该页面并获取响应页面并使用正则表达式来提取标题。

字符串正则表达式 = @"(?<=)([\s\S]*)(?=)/";

但我看到一个网站有两个标题,例如

所以当我使用上面的正则表达式时,我得到的标题为

我知道正则表达式是贪婪的。如何将正则表达式修改为不贪婪,以便它给我“页面标题”?

0 投票
2 回答
69 浏览

regex - 正则表达式麻烦,好像不能匹配我想要的

我在中间某处有大量乱码数据:

从这里,我想提取hGosI8rBVe8. 请注意,我要提取的内容可以是任意长度,并且可以包括大写/小写字母和数字。这是我迄今为止尝试过的:

和:

但是他们在我想要返回的末尾处继续匹配方式。我很确定这是因为*(贪婪)......但我认为没有其他方法可以做到这一点,因为我想要返回的将是可变长度。

任何帮助表示赞赏,欢呼。

0 投票
3 回答
40417 浏览

c# - C# 正则表达式中的贪婪、非贪婪、全贪婪匹配

如何获得以下示例中的所有匹配项:

PS:我想以通用方式进行所有匹配。上面的例子只是一个例子。

0 投票
2 回答
61 浏览

regex - 正则表达式问题

演示 我正在测试一个正则表达式,我对匹配结果很好奇,

符号 * 是绿色的,在我的选项中,结果应该只匹配 1 个结果,如下所示:

但结果不是我所期望的,任何人都可以帮我解释一下,谢谢?