问题标签 [reluctant-quantifiers]

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 回答
90 浏览

java - Java 勉强匹配来自量词的两边

我想在java中编写一个正则表达式,它将从量词的两侧找到最短的可用匹配。

例如,对于这种模式"a.*?b"适用于"aaaaaacbbbbbbb"

我想找到"acb",但我得到了"aaaaaacb"

任何人都知道我可以使用哪个正则表达式?

0 投票
5 回答
888 浏览

javascript - 这个正则表达式有什么问题 - 与不情愿的量词有关?

任何人都知道为什么这在javascript中不起作用?(尝试使用 Chrome 和 Firefox):

输出这个:

我期待这个:

我对解决问题的替代方法不感兴趣,而且对于我试图实现的目标(我现在用一种稍微不同的方式)来说,这也不是一个完整的解决方案——我只是对匹配失败的原因感兴趣.

我希望不情愿的量词可以匹配所有内容,但不包括最终报价。我不明白为什么表达式无法匹配任何内容?

0 投票
4 回答
406 浏览

python - 正则表达式量词

我是正则表达式的新手,这让我很困惑。

在下面的示例中,我想提取facebook.com/pages/Dr-Morris-Westfried-Dermatologist/176363502456825?id=176363502456825&sk=info. 我已经阅读了惰性量词和lookbehinds,但我仍然无法拼凑出正确的正则表达式。我希望facebook.com\/.*?sk=info能工作,但它捕捉到了太多。你们能帮忙吗?

0 投票
4 回答
947 浏览

java - 忽略java中的多行注释

我正在编写一个程序,我需要忽略传递的文件中的注释。我在这个问题上阅读了正则表达式模式..并且能够忽略单行注释(//...)和多行注释,如果它定义在单行(/.../)中。但是我面临着忽略多行注释的困难,如下所示:

>

/* ........ .......... ....*/

对于我使用的单行

"//.*$"

对于第二个,

"/\\*.*\\*/"

我什至在某处读到 Reluctanat 量词会有所帮助...尝试使用正则表达式和不情愿量词的不同模式...不高兴..有人可以帮我解决这个问题吗..?

谢谢

0 投票
2 回答
65 浏览

java - 不情愿的限定符在 Javascript 中不起作用

如果在节点 v0.10.26 中调用以下函数:

输入:

我希望以下内容将作为子字符串匹配返回(在 Java 中调用类似函数时会发生这种情况)

但只返回以下内容

我希望那"group.intrinsicHeight == preamble.bottom !medium"会成功

但只能得到以下

我怀疑这个问题与(.*?)小组有关。我认为这被称为不情愿的量词。它甚至被Javascript支持吗?如果没有,是否有解决方法?非常感谢任何帮助。

0 投票
1 回答
1685 浏览

javascript - 动态正则表达式中占有量词的 JavaScript 替代方案

我正在使用 JavaScript 从逗号分隔的成员字符串中提取“兄弟姐妹”的子集,我称之为“世代”字符串。

打个比方,成员都来自同一代,但他们并不都是兄弟姐妹(来自同一父母)。这是一个例子:

生成字符串及其成员具有以下特征:

  • 每个成员的字符数与其他成员相同
  • 字符串的所有成员都是 alpha 排序的
  • 每组兄弟姐妹总是彼此相邻
  • 兄弟姐妹是那些除了最后一个字母外共享完全相同的字母组合的成员

继续这个例子……

上面确定的问题点涉及构造模式中的正则表达式量词。如上所示,一切都设置为贪婪,因此 mSiblings 的值为:

那只是最后一个成员。将 mPattern 更改为不那么贪婪以希望提取其他成员会产生以下结果

如果我可以使中间表达所有格,这将解决问题。像这样的东西:

但正如我所读(并且有语法错误来证明),JavaScript 不支持所有格正则表达式量词。有人可以提出解决方案吗?谢谢你。

0 投票
2 回答
194 浏览

php - 正则表达式练习:带有前瞻断言的不情愿量词

你能解释一下这是如何工作的吗?这是一个例子:

首先,我尝试使用以下正则表达式来匹配条件注释中的内容:

它失败了,因为正则表达式匹配 first<!--和 last之前的所有内容-->。然后我尝试使用另一种带有前瞻断言的模式:

它可以工作并且完全符合我的需要。但是,以下正则表达式也可以工作:

最后一个正则表达式在前瞻断言中没有不情愿的量词。现在我很困惑。谁能解释一下它是如何工作的?也许这个例子有更好的解决方案?

更新:

我尝试在另一个文档中使用带有前瞻断言的正则表达式,但它无法匹配注释之间的内容。所以,这个/<!--(?=.*?stylesheet).*?-->/s(以及这个/<!--(?=.*stylesheet).*?-->/s)是不正确的。不要使用它并尝试其他建议。

更新:

Jonny 5找到了解决方案(见答案)。他提出了三个选择:

  1. 使用否定的连字符来限制匹配。仅当标签之间没有连字符时,此选项才有效。如果样式表有 URL /style-sheet.css,它将不起作用。
  2. 使用转义序列:\K. 它就像一个魅力。缺点如下:
    • 它非常慢(在我的情况下,它比其他解决方案慢 8-10 倍)
    • 仅自 PHP 5.2.4 起可用
  3. 使用前瞻来缩小匹配范围。这是我试图实现的目标,但我使用环视断言的经验不足以执行任务。

我认为以下是我的示例的一个很好的解决方案:

相同,但s末尾有修饰符:

正如我所说,这是一个很好的解决方案,但我设法改进了模式并找到了另一个在我的情况下工作得更快的模式。

所以,最终的解决方案如下:

感谢所有参与者提供有趣的答案。

0 投票
1 回答
111 浏览

regex - 确切的贪婪/不情愿 X{n} 之间的区别?

在 JavaPattern类的文档中,我看到确切的量词X{n}有贪婪和不情愿的形式:

贪心量词

  • X{n} X,正好 n 次
  • ...

不情愿的量词

  • X{n}?X,正好 n 次
  • ...

该文档给出了贪婪和不情愿行为之间差异的一般示例,但没有给出确切量词的任何示例。

起初我想,“好吧,也许不同之处在于它X本身可以以不同的方式匹配。” 但是然后X可以在其中包含自己的贪婪/不情愿的说明符,果然我测试了它,这没有区别(贪婪不情愿)。

鉴于在任何一种情况下,它都会精确匹配n时间,两者的行为有什么区别吗?

0 投票
1 回答
101 浏览

java - 不情愿的量词贪婪

我有这个代码:

我有一个要匹配的字符串:

我在执行时得到的输出:

现在我实际上希望它分别在括号中找到找到的案例,所以要找到: [something 234] in one match (some things) 作为第二场比赛

任何人都可以帮助我相应地构建正则表达式吗?我不确定如何为整个正则表达式放置不情愿的量词,所以我将整个括号内的元素括在另一个括号中。但我不明白为什么这个不情愿的量词在这里表现得很贪婪,我需要做些什么来改变它?

0 投票
1 回答
858 浏览

matlab - (matlab) 带有 relu 和 softmax 的 MLP 不适用于小批量 SGD,并在 MNIST 数据集上产生类似的预测

我在 MNIST 数据集上实现了一个带有 1 个隐藏层的多层感知器。隐藏层的激活函数是leaky(0.01) ReLu,输出层有一个softmax激活函数。学习方法是 mini-batch SGD。网络结构为784*30*10。问题是我发现网络对每个输入样本所做的预测非常相似。这意味着模型总是想认为图像是某个特定的数字。感谢@Lemm Ras 指出先前 data_shuffle 函数中的标签数据不匹配问题,现已修复。但是经过一些批量训练后,我发现预测仍然有些相似:在此处输入图像描述这很令人困惑。

另一个问题是更新值与原始权重相比太小,在 MLP 代码中,我添加了变量 'cc' 和 'dd' 来记录它们的 weight_update 和 weight 之间的比率,

调试时,cc 的大小为 10^-4(0.0001),dd 也是 10^-4。这可能是准确性似乎没有提高很多的原因。

经过几天的调试。我不知道为什么会发生这种情况以及如何解决它,这让我卡了一个星期。有人能帮助我吗?截图是softmax函数后A2的值。

这里是训练 MLP 函数,请忽略当前设置为 0 的 L2 正则化参数 lamda。

这是softmax函数:

labels_matrix 是 A2 的目标输出矩阵,创建为:

和 Relu:

数据洗牌

数据加载: