问题标签 [capture-group]

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 投票
1 回答
1138 浏览

regex - 正则表达式命名的捕获组不起作用

我遇到了最奇怪的问题,我知道这一定是我忽略的一些微不足道的事情。我正在编写一个可以正常工作的简单正则表达式,直到我尝试命名我的捕获组。例如,您可以在http://www.regexr.com/上重现此内容。

要匹配的文本:

要使用的正则表达式:

这工作正常,它与版本号匹配。但是当我将正则表达式更改为:

它不再匹配,regexrError: Invalid quantifier for target在第一个问号上说。我还在我的 C# 应用程序中确认了相同的结果。我在这里做错了什么?

这是一个非常简单的例子,所以我不确定什么是不正确的。我确实找到了这篇文章,它描述了一个类似的问题,但答案只是为 OP 提供了要使用的新正则表达式,而不是实际告诉他为什么他的原始正则表达式无效。


更新

答案是 regexr.com 不再支持命名的捕获组,而且我一定是第一次在 C# 中搞砸了我的正则表达式,因为当我重写它时它运行良好。

0 投票
2 回答
34 浏览

javascript - 使用单个正则表达式从多个列表中捕获项目

我的输入如下所示:

Lorem ipsum dolor sit amet, consectetur adipiscing elit。_ 4 , 7 , 13 Nullam suscipit orci sat amet feugiat facilisis。Curabitur eget 8 ligula malesuada,vehicula 3,6 quam sit amet,_ 5 tempor velit。

_我需要单独并使用单个正则表达式来捕获逗号分隔列表中的每个数字。

换句话说,我需要上面的粗体数字:

[4、7、13、5]

我一直在一次又一次地尝试使这项工作没有成功。我想知道在没收并使用多种表达方式之前这是否可能。

我正在寻找 Javascript 中的解决方案,但显然任何指针都会有所帮助。

0 投票
3 回答
468 浏览

regex - 如何使用 Perl 从单个字符串中捕获子表达式的多个匹配项?

我目前有以下正则表达式:

这将匹配show_3x01_ep. name并检索show, 3, 01. 我想扩展它,以便可以捕获多个剧集。例如:

应该返回:

有人可以向我解释如何做到这一点吗?

0 投票
1 回答
984 浏览

javascript - 为什么我的正则表达式捕获组在匹配多个部分时仅捕获字符串的最后一部分?

我试过的

我做了一个JSFiddle

我的期望

变量matches应该变成这个数组:

我得到什么

变量matches实际上是这个数组:

我的想法

我的猜测是捕获组和/或$逻辑缺少一些东西。任何帮助,将不胜感激。(我知道我可以弄清楚如何在多个正则表达式中做到这一点,但我想了解这里发生了什么。)

0 投票
1 回答
522 浏览

regex - 正则表达式多个捕获组替换为字符串

我有一串数据...

我想取以下字符串并制作 5 个字符串。

我目前有以下正则表达式...

现在,如果我运行 5 次,它会正常工作。问题是要制作的行数未知。例如...

我希望能够使用 MULTI 捕获组来完成这项工作。我发现这个PAGE讨论了重复捕获组和捕获重复组之间的常见错误。我需要捕获一个重复的组。出于某种原因,我只是无法让我的工作正常。还有人有想法吗?


资源:

0 投票
0 回答
157 浏览

regex - 使用正则表达式多个捕获组来拆分字符串

我有一个看起来像这样的文件......

我要做的就是解析 D 和 R 行。在这种情况下, ~ 用作分隔符。所以最终的结果将是......

我在 Textpad 和 Notepad++ 等应用程序上使用正则表达式。我还没有弄清楚如何使用像/.+/g这样的正则表达式,因为应用程序不喜欢正斜杠。所以我不认为我可以使用全局修饰符之类的东西。我目前有以下正则表达式...

现在,如果我运行 find 并用上述参数替换几次,它会正常工作(仅适用于 D 行)。问题是要制作的行数未知。例如...

我希望能够使用 MULTI 捕获组来完成这项工作。我发现这个PAGE讨论了重复捕获组和捕获重复组之间的常见错误。我需要捕获一个重复的组。出于某种原因,我只是无法让我的工作正常。还有人有想法吗?

注意:如果我可以去掉前导和尾随空格 EX: "1234567123456","D","TEST1 " 最终为 "1234567123456","D","TEST1" 会更好但不是必需的。


资源:

0 投票
1 回答
41 浏览

regex - 将捕获组的一部分与 Perl 正则表达式匹配

我有一个结构如下的数据文件:

我正在尝试使用正则表达式检查该数据文件的每一行的格式是否有效。

我想这样做的方式如下,除了我不确定如何为用户名部分设置表达式。

$1 将给出整个名字,$2 将给出整个姓氏。用户名由名字的第一个字母和姓氏的前四个字母组成。我不确定如何使用捕获组检查这一点。有没有办法让我只检查 $1 和 $2 的一部分而不在正则表达式本身之外创建变量?

0 投票
5 回答
122 浏览

python - Python re 与最后一个捕获组不匹配

对于以下代码:

输出是:

但我会预料到这一点:


我发现如果我添加一个分隔符,我可以让它工作:

输出:


有没有一种方法可以在没有自定义分隔符的情况下获得我的匹配项?

0 投票
2 回答
350 浏览

python - re.search 返回空元组

本例中的 Galcode.txt 是 imgur 上画廊的 html。我正在尝试获取发布到 imgur 的画廊的所有链接的列表。如果我在输入画廊名称并收到 galcode 后运行它,我得到的只是大约 15 ()。如何获取链接列表?

谢谢

0 投票
3 回答
1325 浏览

python - 正则表达式中的圆括号是什么意思?

我不明白为什么正则表达式^(.)+$匹配字符串的最后一个字母。我认为它会匹配整个字符串。

Python 中的示例: