问题标签 [regex-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 投票
33 回答
237518 浏览

regex - 用于匹配英国邮政编码的正则表达式

我正在使用一个正则表达式,它将仅在输入字符串中验证完整的复杂英国邮政编码。所有不常见的邮政编码形式都必须像往常一样被覆盖。例如:

火柴

  • CW3 9SS
  • SE5 0EG
  • SE50EG
  • se5 0eg
  • WC2H 7LT

没有匹配

  • aWC2H 7LT
  • WC2H 7LTa
  • WC2H

我该如何解决这个问题?

0 投票
4 回答
3618 浏览

c# - SQL 查询的正则表达式给出了一个空的 MatchCollection

我尽量保持简洁。我必须编写一个以 SQL 形式进行查询并搜索 XML 的程序。现在我正在尝试将字符串分解成逻辑片段,以便我可以使用它们。我有一个字符串作为输入,并希望得到一个 MatchCollection 作为输出。

请注意,下面的测试字符串是我强加给用户以保持简单的特殊格式。每行只允许一个语句,并且排除嵌套查询-

string testString = "select apples \n from dblp \r where we ate \n group by all of them \r HAVING NO SHAME \n";

我使用具有以下模式的正则表达式:

据我所知,这应该给我匹配测试字符串的每个组。我会在每行的开头寻找“select”的完全匹配,然后是除换行符之外的任何字符。

现在我创建集合:

为了确保它有效,我使用了一个 foreach 并打印了如下匹配:

问题是集合总是空的。某个地方的正则表达式一定有缺陷,但我太缺乏经验,无法找到它。你能帮帮我吗?非常感谢!


我尝试使用 .* 而不是 . 直到我被告知。甚至会数学多个字符。我毫不怀疑这可能是一个问题,但即使更换它我也没有得到任何结果。

我不明白为什么很难匹配以定义的单词开头并附加任何字符的行,直到正则表达式找到换行符。在我看来,这应该是一个相对容易的任务。

0 投票
4 回答
517 浏览

python - 我可以使用 re.sub(或 regexobject.sub)替换子组中的文本吗?

我需要解析一个如下所示的配置文件(简化):

我的目标是能够更改特定于特定链接的参数,但我无法让替换正常工作。我有一个正则表达式可以隔离特定链接上的参数值,其中该值包含在捕获组 1 中:

因此,

打印 ipsec

regex howto中的示例似乎都假设一个人想在替换中使用捕获组,但我需要做的是替换捕获组本身(例如将 Link1 模式从 ipsec 更改为 udp)。

0 投票
6 回答
143018 浏览

java - 我可以替换 Java 正则表达式中的组吗?

我有这段代码,我想知道,如果我只能替换 Java 正则表达式中的组(不是所有模式)。代码:

0 投票
5 回答
1949 浏览

java - 在没有线性搜索的情况下找出 Java 正则表达式中的哪个组匹配?

我有一些以编程方式组装的巨大正则表达式,像这样

每个子模式都在其捕获组中。当我得到一个匹配项时,如何确定哪个组匹配而不用线性测试每个组group(i)以查看它返回一个非空字符串?

0 投票
1 回答
656 浏览

php - 正则表达式通过命名(子)组从类似 xml 的标签中提取/替换值

尝试在 PHP 中创建一个简单的文本翻译器。

它应该匹配如下:

语言可以是可选的

这是代码:

它提取“属性”,但只获取最后一个。我的第一个想法是,它与组命名有关,当 PHP 在每次匹配时覆盖(命名)数组元素时。但省略组命名它也只返回最后一场比赛。

这是一个返回给回调的数组作为示例

0 投票
2 回答
130 浏览

java - 有没有办法使用带有正则表达式(带组)的字符串参数列表来构造新字符串?

例如,假设我有一个像这样的正则表达式:

这个正则表达式有 3 个分组的组件——如果它与给定的字符串匹配,正则表达式 api 将允许您轻松地提取每个组内的值。

现在假设我有 3 个字符串:

如果我们假设正则表达式中不在组内的所有字符只是文字文本字符 - 有没有办法将这 3 个字符串中的每一个插入原始正则表达式中的相应组中,从而产生一个输出字符串结合正则表达式的非分组部分?在这种情况下,导致“敏捷的红狐跳过懒惰的猫”。最好不需要有一个已经匹配正则表达式的字符串。

我希望在 Java 中做到这一点 - 我很确定 java.util.regex 不支持这个,但我想也许会有一个 3rd 方库可以允许这样做。谁能给我一些指示?

0 投票
1 回答
532 浏览

c# - 为什么 Group.Value 总是最后匹配的组字符串?

最近,我发现一个 C# Regex API 真的很烦人。

我有正则表达式(([0-9]+)|([a-z]+))+。我想找到所有匹配的字符串。代码如下所示。

输出是:

似乎所有 group.Value 都是最后一个匹配的字符串(“def”和“456”)。我花了一些时间弄清楚我应该依靠 group.Captures 而不是 group.Value。

这将输出:

现在,我想知道为什么 API 设计是这样的。为什么 Group.Value 只返回最后一个匹配的字符串?这个设计看起来不太好。

0 投票
2 回答
865 浏览

c# - 正则表达式帮助:我的正则表达式模式将匹配无效字符串

我要验证的文本字符串由我所谓的“段”组成。单个段可能如下所示:

到目前为止,我设法构建了这个正则表达式模式

它可以工作,但即使整个文本字符串包含无效文本,它也会返回匹配项。我想我需要在我的模式中的某个地方使用^$,但我不知道怎么做!?

我希望我的模式产生以下结果:

  • [A-Z,S,3][A-Za-z0-9åäöÅÄÖ,D,4] OK(两段)
  • [A-Z,S,3]aaaa[A-Za-z0-9åäöÅÄÖ,D,4] 没有匹配
  • crap[A-Z,S,3][A-Za-z0-9åäöÅÄÖ,D,4] 没有匹配
  • [A-Z,S,3][] 没有匹配
  • [A-Z,S,3][klm,D,4][0-9,S,1] OK(三段)
0 投票
4 回答
2727 浏览

python - Python 正则表达式中的动态命名组

有没有办法在 Python 中动态更新正则表达式组的名称?

例如,如果文本是:

在事先不知道有多少人的情况下,如何命名组“person1”、“person2”、“person3”、...和“personN”?