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

regex - 正则表达式解析文件路径

我有这段文字:

创建调试信息文件 'c:\Users\Path1\Path2\Strategies\Path3\CustomStrategy.PDB' 出现意外错误 -- 'c:\Users\Path1\Path2\Strategies\Path3\CustomStrategy.pdb: 系统找不到路径指定的。

我需要解析出文件路径,c:\Users\Path1\Path2\Strategies\Path3或者c:\Users\Path1\Path2\Strategies\Path3\CustomStrategy.PDB更容易。我尝试使用以下正则表达式

但是,这个正则表达式不会在第一个文件扩展名处停止,而是继续匹配路径的第二个实例,在 .pdb 的第二个实例处停止;因此将两个文件路径放在一个正则表达式匹配中。

为了使正则表达式将两条路径解析为两个单独的匹配项,我需要更改什么?谢谢。

0 投票
1 回答
897 浏览

regex - 正则表达式仅匹配第一个实例

出于某种原因,我无法使用惰性匹配。

以下是正文——

我只想匹配具有“apache2”的第一行,即

我的正则表达式看起来像这样 -

但它似乎没有工作 - 它匹配所有实例。怎么了?

0 投票
3 回答
462184 浏览

regex - 如何编写匹配非贪婪的正则表达式?

我需要有关与非贪婪选项匹配的正则表达式的帮助。

匹配模式是:

要匹配的文本是:

我在http://regexpal.com上测试

<img此表达式匹配从到最后的所有文本>>我需要它与在 initial 之后遇到的第一个匹配<img,所以在这里我需要得到两个匹配而不是我得到的一个。

我尝试了所有non-greedy?的组合,但没有成功。

0 投票
2 回答
1612 浏览

c# - 正则表达式仅在左侧贪婪(.net)

我正在尝试捕获两个字符串之间的匹配。

例如,我正在寻找出现在 Q 和 XYZ 之间的所有文本,使用“最快”匹配(不继续向外扩展)。这个字符串:

马戏团 Q 你好Q SOMETEXT XYZ今天是一天 XYZ 好的 XYZ

应该返回:

Q 某些文本 XYZ

但相反,它返回:

Q 你好 Q SOMETEXT XYZ

这是我正在使用的表达式: Q.*?XYZ

它向左走得太远了。当我在星号后使用问号时,它在骑行方面工作正常。我怎样才能对左侧做同样的事情,并在我击中第一个左 Q 后停止,使其与右侧的工作方式相同?我已经尝试过http://msdn.microsoft.com/en-us/library/az24scfc.aspx中的问号和其他符号,但有些东西我只是想不通。

我是一个正则表达式新手,所以对此的任何帮助将不胜感激!

0 投票
1 回答
165 浏览

regex - 正则表达式原子分组不够贪婪

我正在尝试构建一个匹配转义字符串的正则表达式,例如@"hello""world". 到目前为止,我有(忽略空格):

问题是无效的(因为它没有关闭)字符串@"""匹配为@"". 我认为当我使用原子分组又名非回溯子表达式时,(?>""|[^"])*将匹配的最后两个双引号@"""(因为左替代可以匹配两个双引号)然后导致整体匹配失败(因为最后一个"正则表达式不是存在)但该组似乎不够贪婪(尽管具有贪婪的量词*和原子分组)并且"一旦注意到正则表达式失败,它仍然会回溯到正则表达式的第一个之后的点。一种解决方法是放在(?!")正则表达式的末尾,但我想知道为什么它不适用于原子分组。

0 投票
1 回答
192 浏览

ruby - ruby 正则表达式查找嵌套匹配

我的正则表达式是

和测试字符串是

我得到的比赛是

但是还有另一个较短的匹配“编程测试这个”,这个正则表达式无法找到,我使用扫描方法找到所有匹配但甚至无法捕获这个。

任何帮助是极大的赞赏

0 投票
1 回答
102 浏览

java - 正则表达式问题冲突

我没有从stackover收到任何答案。我有什么问题吗..?

请任何人帮助我找到下面的正则表达式问题。

如果输入文本以“(ix) (a) This is Sample Sentence”开头。,

它匹配两种正则表达式模式

  1. ^9\.|^\s*[(](ix)[)]
  2. ^9\.\s*[(]?a[)]?|^\s*[(]\s*(ix)\s*[)]\s*[(]\s*(a)\s*[)]

因为我的输入句子以 (ix) 和 (ix) (a) 开头。

所以请给我发送应该与输入句子匹配的正则表达式。

0 投票
1 回答
189 浏览

regex - 使用正则表达式解析过滤条件

我正在尝试使用正则表达式解析一个简单的过滤条件

过滤器应具有以下语法:

我想出了以下(在scala中)

所以这是一个好的开始

现在我希望正则表达式在没有传递值时捕获(引发错误)

我试过这个(我把最后一组设为非可选)

所以问题在于它将运算符识别为“<”,将值识别为“>”,而不是正确地将运算符识别为“<>”并将值识别为“”(如果我用最火的 reg exp 对其进行测试,它正确将运算符识别为 <> 并将值识别为 "")

我想我应该告诉正则表达式贪婪地匹配运算符,但我认为默认情况下是这样的......

- 编辑

我刚刚在网上找到了这个 scala 控制台,为你测试正则表达式 http://www.simplyscala.com/

--

0 投票
5 回答
222 浏览

javascript - 具有全局标志的正则表达式仅匹配第一个匹配项

为什么:

返回

[“[#12345678]”、“[#12345678]”、“12345678”]

我希望它匹配所有这些数字,但它似乎太贪婪了。

[#12345678] [#87654321] [#56233001] [#36381069] [#23416459] [#56435355] 12345678 87654321 56233001 36381069 23416459 56435355

0 投票
2 回答
1163 浏览

regex - 如何匹配用单个空格分隔的单词与用多个空格分隔的单词

我需要将键和值与如下所示的文本分开

学生 ID:0
部门 ID = 18432
姓名 XYZ

在上面的示例中,Student ID、Department ID 和 Name 是键,0,18432、XYZ 是值。键与值通过 :,= 或多个空格分隔。我尝试了reg ex,例如

我面临的问题是确定一个单词何时用单个空格分隔以及何时被多个空格分隔。

我得到的输出是 line is Student ID: 0 key is Student , value is ID: 0 而我想要 key is Student ID 并且 value 是 0. 对于像 Subjects: 和 Computer Architecture 这样的行,键应该有 Subjects 和 Computer Architecture。稍后当没有值或冒号时我有逻辑,我将字符串附加到前一个键,所以它看起来像 Subjects=Computer Architecture;Advanced Network Security 2

更新:感谢 Ikegami 指出我使用后视运算符。但我似乎仍然无法解决它。

所以当我说(?<!\s\s)\s* [:=]\s*|\s*我的意思是当有两个以上的空间时,消耗所有的空间,当没有两个连续的空间时,寻找 : 或 = 并消耗空间。因此,如果您将下面的行传递给表达式,我不应该得到 $1=Name 和 $2=ABC XYZ 吗?

我似乎得到的是键是空的,值是名称 ABC XYZ。