问题标签 [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.
regex - 用于匹配英国邮政编码的正则表达式
我正在使用一个正则表达式,它将仅在输入字符串中验证完整的复杂英国邮政编码。所有不常见的邮政编码形式都必须像往常一样被覆盖。例如:
火柴
- CW3 9SS
- SE5 0EG
- SE50EG
- se5 0eg
- WC2H 7LT
没有匹配
- aWC2H 7LT
- WC2H 7LTa
- WC2H
我该如何解决这个问题?
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 并打印了如下匹配:
问题是集合总是空的。某个地方的正则表达式一定有缺陷,但我太缺乏经验,无法找到它。你能帮帮我吗?非常感谢!
我尝试使用 .* 而不是 . 直到我被告知。甚至会数学多个字符。我毫不怀疑这可能是一个问题,但即使更换它我也没有得到任何结果。
我不明白为什么很难匹配以定义的单词开头并附加任何字符的行,直到正则表达式找到换行符。在我看来,这应该是一个相对容易的任务。
python - 我可以使用 re.sub(或 regexobject.sub)替换子组中的文本吗?
我需要解析一个如下所示的配置文件(简化):
我的目标是能够更改特定于特定链接的参数,但我无法让替换正常工作。我有一个正则表达式可以隔离特定链接上的参数值,其中该值包含在捕获组 1 中:
因此,
打印 ipsec
regex howto中的示例似乎都假设一个人想在替换中使用捕获组,但我需要做的是替换捕获组本身(例如将 Link1 模式从 ipsec 更改为 udp)。
java - 我可以替换 Java 正则表达式中的组吗?
我有这段代码,我想知道,如果我只能替换 Java 正则表达式中的组(不是所有模式)。代码:
java - 在没有线性搜索的情况下找出 Java 正则表达式中的哪个组匹配?
我有一些以编程方式组装的巨大正则表达式,像这样
每个子模式都在其捕获组中。当我得到一个匹配项时,如何确定哪个组匹配而不用线性测试每个组group(i)
以查看它返回一个非空字符串?
php - 正则表达式通过命名(子)组从类似 xml 的标签中提取/替换值
尝试在 PHP 中创建一个简单的文本翻译器。
它应该匹配如下:
语言可以是可选的
这是代码:
它提取“属性”,但只获取最后一个。我的第一个想法是,它与组命名有关,当 PHP 在每次匹配时覆盖(命名)数组元素时。但省略组命名它也只返回最后一场比赛。
这是一个返回给回调的数组作为示例
java - 有没有办法使用带有正则表达式(带组)的字符串参数列表来构造新字符串?
例如,假设我有一个像这样的正则表达式:
这个正则表达式有 3 个分组的组件——如果它与给定的字符串匹配,正则表达式 api 将允许您轻松地提取每个组内的值。
现在假设我有 3 个字符串:
如果我们假设正则表达式中不在组内的所有字符只是文字文本字符 - 有没有办法将这 3 个字符串中的每一个插入原始正则表达式中的相应组中,从而产生一个输出字符串结合正则表达式的非分组部分?在这种情况下,导致“敏捷的红狐跳过懒惰的猫”。最好不需要有一个已经匹配正则表达式的字符串。
我希望在 Java 中做到这一点 - 我很确定 java.util.regex 不支持这个,但我想也许会有一个 3rd 方库可以允许这样做。谁能给我一些指示?
c# - 为什么 Group.Value 总是最后匹配的组字符串?
最近,我发现一个 C# Regex API 真的很烦人。
我有正则表达式(([0-9]+)|([a-z]+))+
。我想找到所有匹配的字符串。代码如下所示。
输出是:
似乎所有 group.Value 都是最后一个匹配的字符串(“def”和“456”)。我花了一些时间弄清楚我应该依靠 group.Captures 而不是 group.Value。
这将输出:
现在,我想知道为什么 API 设计是这样的。为什么 Group.Value 只返回最后一个匹配的字符串?这个设计看起来不太好。
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(三段)
python - Python 正则表达式中的动态命名组
有没有办法在 Python 中动态更新正则表达式组的名称?
例如,如果文本是:
在事先不知道有多少人的情况下,如何命名组“person1”、“person2”、“person3”、...和“personN”?