问题标签 [named-captures]

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

php - preg_replace_callback:在模式中包含花括号:{ 被捕获,} 不是

我有这个函数,它利用 preg_replace_callback 将句子拆分为属于不同类别(字母、汉字、其他所有字符)的块的“链”。

该函数还试图将字符 '{}包括为“字母”

但是,花括号似乎有问题。

从输出中可以看出,该函数将 { 视为字母字符,如所示,但在 } 处停止并将其视为“其他”。

我究竟做错了什么?

0 投票
1 回答
462 浏览

c# - 在负后向正则表达式中命名捕获组

我想避免将输入捕获为:

:):) 但想要捕获 sa:)ds 或者只是想从结果中排除,如果有两个或多个相同的标签相互接触。

我的逻辑说我需要使用否定的lookbehind并命名捕获组,但无法使其正常工作,我不确定方法是否正确。

我试过: (?<!(?P<happy>:\)))(?P=happy) 所以如果我输入为:):) --:)-abc 我只想从第二行匹配“:)”

0 投票
2 回答
4009 浏览

python - Python 正则表达式命名捕获组

我正在学习正则表达式,特别是命名捕获组。

遇到一个问题,我无法弄清楚如何为我的函数findVul()编写 if/else 语句。

基本上代码的工作方式或应该工作方式是findVul()遍历data1data2,它们已添加到列表myDATA中。

如果正则表达式找到整个命名组的匹配项,那么它应该打印出结果。它目前完美运行。

代码:

输出:

现在我想添加一个 if/else 语句来检查整个命名组是否有任何匹配项。

我尝试过这样的事情,但它似乎不起作用。

代码:

输出:

正如您所看到的,它不会打印应该在data1中的漏洞。

有人可以解释一下正确的方法以及为什么我的逻辑是错误的。非常感谢 :) !!

0 投票
0 回答
67 浏览

javascript - 测试新正则表达式功能的浏览器兼容性

确定浏览器是否支持ECMAScript 2018 语言规范中指定的新正则表达式功能的最佳实践是什么?

我怀疑你只需要编写 try catch 语句或通过检测浏览器版本来完成,但我想我先在这里检查一下。

0 投票
1 回答
182 浏览

regex - 如何利用 Bash 中的 PCRE 和命名捕获组,以便将变量导出回父环境?

是否可以从 Bash 脚本调用诸如 Perl 之类的程序来执行具有命名捕获组的正则表达式并将结果作为变量导出回父 shell?

例如:

预期的输出将是small

这不必专门用 Perl 来完成。我只是想知道这是否可以完成和演示。

我有几千个文件要解析,需要构建一个非常大且复杂的正则表达式来处理它们的内容。虽然这可以通过其他工具来完成,例如pcregrep=~使用编号的捕获组,但为了清楚起见,我更喜欢使用命名的捕获组。

除了这个复杂的正则表达式的繁重工作之外,我觉得我不需要使用 Bash 以外的任何东西。有没有办法轻松地使用另一种语言来利用命名捕获组并将结果导出回父环境?

0 投票
3 回答
53 浏览

javascript - Overlapping named capturing groups

I'm using named capturing groups to validate and extract data out of a product number. The format of the product number looks like this:

My current code looks like this:

As gender_code and style overlap I'm not sure how to get them both. Therefore I have the following questions:

  1. Is it possible to this with only one regular expression?
  2. If yes, how could I accomplish this?
0 投票
1 回答
117 浏览

c# - 用于捕获组的正则表达式无法识别

我有以下正则表达式:

如您所见,我正在尝试设置两个命名捕获组 -rootpath. 但是,当运行它并检查匹配组时,没有rootgroup-only path

使用 C#:

我能够通过在https://regex101.com/上运行 Regex 模式来重现这一点。

如果您输入以下测试字符串:

你会注意到你只得到一个命名的捕获组 - path
为什么root不被退回?

似乎我对命名的捕获组使用了正确的语法。我已经尝试在捕获组之外和正则表达式模式内添加括号,但都没有奏效。我在想也许正则表达式模式没有被理解。

regex101 结果截图

0 投票
1 回答
392 浏览

regex - 如何按名称访问捕获组?

说我有一个:MatchResult m

如何按名称访问名为“foo”的组?根据文档MatchGroupCollection实现get(String)operator,但如果我尝试它,我会得到一个异常:

0 投票
1 回答
55 浏览

regex - 如何在 perl 中提取和打印这两个命名的捕获组?

我想打印命名的捕获,但我gclidsession正则表达式一旦匹配 gclid 就会退出:

结果是:

但我想要:

echo只是将要处理的数百万行中的一个示例行。

0 投票
1 回答
58 浏览

c# - 返回单个正则表达式匹配的命名捕获组名称和值

我有这个分解字符串输入的 Tokinizer 类:

我想打印捕获组的名称以及匹配列表中的值,这可能吗?

例如,当我输入“var++”时,它应该输出: