问题标签 [capturing-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 投票
2 回答
257 浏览

regex - 捕获匹配组的子字符串

斯堪纳里奥

我必须从组合字符串中获取子字符串。比赛条件:

  • 字符串以“section1:”开头

  • 捕获的字符串可以是空格分隔或破折号分隔的字母数字值列表

  • 如果捕获的字符串以特定后缀 ('-xx') 结尾,则从捕获的字符串中排除后缀。

例子

section1:ypsilon : 第 1 部分匹配,获取 'ypsilon'

section1:ypsilon zeta:第 1 部分匹配,获取“ypsilon zeta”

section1:ypsilon-zeta : 第 1 部分匹配,获取 'ypsilon-zeta'

section1:ypsilon-xx : 第 1 部分匹配,抓取 'ypsilon',排除 '-xx'

section1:ypsilon zeta-xx:第 1 部分匹配,抓取 'ypsilon zeta',排除 '-xx'

section1:ypsilon-zeta-xx:第 1 部分匹配,抓取 'ypsilon-zeta',排除 '-xx'

section2:ypsilon:第 2 节不匹配

到目前为止的解决方案

这个想法是获得第 1 组,而第 2 组是可选的。 演示

问题

不幸的是,后缀与 group1 定义匹配,因为它是一个带有破折号的字母字符串。所以生成的捕获字符串不排除后缀。

有什么线索吗?

0 投票
2 回答
4551 浏览

regex - 使用正则表达式、组捕获和反向引用查找和替换

我正在尝试在 SQL Server 2008 R2 Management Studio 中执行查找和替换操作并使用组捕获,以便我可以反向引用替换中的组。我从中了解到 SSMS 使用Visual Studio 2005 正则表达式引擎。这是我所拥有的一个例子:

这是我的“查找”表达式:

这是我的“替换”表达式:

但是,运行替换操作不会返回任何捕获的组,即每一行只是“”(<---只是两个反向引用之间的空格)。

我究竟做错了什么?

0 投票
1 回答
125 浏览

regex - 使用 PCRE Regex 提取 Apache Web Log 的字段

使用 PRCE 正则表达式,我想捕获不同 apache 博客的每个字段。这些日志的结构类似于以下示例:

aaa bbb "cc c" ddd "eee" fff

每个字段由空格分隔。但是字段也可能包含空格,在这种情况下,它们在字段的开头和结尾用引号括起来(“cc c”)。不包含空格的字段在字段的开头和结尾也有引号(“eee”)。

结果应该有每个字段的捕获组,因此对于示例应该是: Group1: aaa Group2: bbb Group3: "cc c" Group4: ddd Group5: "eee" Group6: fff

我的问题是我想要一个万能的解决方案,例如带有量词 - 像这样: (?:((aa|bb|"cc"|dd)\s){1,})

但是这里的量词总是在 aaa 处重复。

非常感谢一个整洁、有效的解决方案。

0 投票
1 回答
1977 浏览

ios - NSRegularExpression 找不到捕获组匹配

我正在尝试使用一种正则表达式模式解析字符串。

这是模式:

这是要解析的文本:

我想找到这 4 个捕获组:

我正在使用以下代码尝试捕获这些组

不幸的是,它只能找到一个范围(0, 8)等于:的组"base" {。所以它找到一组是整个字符串而不是 4 组。

这甚至可以让这些团体使用NSRegularExpression吗?

0 投票
2 回答
921 浏览

c# - C# 正则表达式捕获组不起作用

在下面的代码中,我想捕获以 test 开头并后跟双引号括起来的文本的任何内容。例如

test"abc"

test"rst"

代码工作正常。

然后,从上面的捕获中,我想捕获单词 test 之后的子表达式(在上面的示例中,这些子表达式将是“abc”和“rst”,包括“。我尝试了以下内容,它正确地给了我:

"abc"

"rst"

问题:现在我想捕获两个子表达式 1.“abc”和“rst” 2.除了匹配 test“abc”和 test“rst”之外的任何字符。所以,我尝试了以下但如下所示匹配“rst”“uvw”的第 1 组和第 2 组是错误的。我需要“rst”“uvw”的第 1 组为“rst”,第 2 组为空,因为“rst”后面的字符是“:

第 1 组:“abc”

第 2 组:=

第一组:“第一”

第 2 组:你

0 投票
1 回答
2306 浏览

regex - 正则表达式 - 捕获所有重复的迭代

我有一个像这样的变量

我正在尝试捕获此 var 中的所有“123”和“abc”。

这个正则表达式(abc|123)检索我想要的但是......

我的问题是:当我尝试这个正则表达式!(abc|123)*!时,它只检索最后一次迭代。我该怎么做才能得到这个输出

https://regex101.com/r/mD4vM8/3

谢谢!!

0 投票
1 回答
104 浏览

python - Python: Regex: Detecting hyphenated names and non-hyphenated names with one regex

I need to extract people's names from a really long string.

Their names are in this format: LAST, FIRST.

Some of these people have hyphenated names. Some don't.

My attempt with a smaller string:

Input:

Expected output:

Actual output:

What am I doing wrong?

0 投票
1 回答
8709 浏览

regex - 捕获组的负前瞻

我正在尝试这个挑战:

https://regex.alf.nu/4

我想匹配所有不包含 ABBA 模式的字符串。

匹配:

不匹配

首先,我有一个正则表达式来确定 ABBA 模式。

接下来我要匹配不包含该模式的字符串:

然而,这符合一切。

如果我通过为负前瞻指定一个文字来简化这一点:

正则表达式与字符串“anallagmatic”不匹配,这是所需的行为。

所以看起来问题出在我在负前瞻中使用捕获组和反向引用。

0 投票
1 回答
362 浏览

regex - 捕获组在 Select-String 的 -Pattern 末尾不起作用

我最近开始在 Powershell 中使用正则表达式,并且遇到了来自 Select-String cmdlet 的意外响应。

如果您输入如下内容:

您会收到来自 Match-Info 对象的预期结果:

但是如果将捕获组放在 -Pattern 的末尾:

Match-Info 似乎没有找到任何东西,尽管创建了一个:

正如我所说,我对 Powershell 很陌生,所以我认为这种行为是操作员错误。

但是解决方法是什么?这种行为还没有给我带来问题,但考虑到我正在使用的文件(XML 文件中包含的电子手册),我希望它最终会发生。

...

带着敬意,

施韦特

...

澄清:

我让我的例子非常简单来说明行为,但我最初的问题是这种模式:

该文件是我们手册之间链接的索引之一,链接的名称包含在文件每一行的注释块中。

该模式实际上是一个错字,因为名称和注释并没有一直到行尾。当程序在 Match-Info 对象中找不到“链接名”时开始出错时,我发现了它。

一旦我给它链接名称(::)之后出现的字符,它就可以正常工作。将其放入示例中:

0 投票
1 回答
38 浏览

java - 第二个捕获组未捕获

在java中,我一直在尝试使用正则表达式解析日志文件。日志文件的一行以下。

我需要行尾的 json 字符串和 id。这意味着我需要两个捕获组。所以我开始编码。

模式末尾的(.*?)是因为它需要贪婪,但;在输入行的最末尾返回。

但是,上面的代码输出

但是我的“休息”组在哪里?为什么整条线都是一个组?我检查了多个在线正则表达式测试站点,它应该可以工作:例如http://www.regexplanet.com/advanced/java/index.html看到 3 个捕获组。也许这与我目前正在使用 jdk 1.6 的事实有关?