【发布时间】:2019-04-19 12:32:29
【问题描述】:
我目前有以下正则表达式:
P:(?<ParentName>[A-Z,a-z,0-9,-,_]+)-(?<ParentAge>[A-Z,a-z,0-9,-,_]+)
C:(?<Child>[A-Z,a-z,0-9,-,_]+)
与
匹配P:Bob-30
C:Jane
但是,我希望能够表达一个匹配的正则表达式:
P:Jack-35
C:John
C:Marie
我通过在第二部分周围添加 []+ 来尝试这个:
P:(?<ParentName>[A-Z,a-z,0-9,-,_]+)-(?<ParentAge>[A-Z,a-z,0-9,-,_]+)
[C:(?<Child>[A-Z,a-z,0-9,-,_]+)]+
但是这不起作用并给出错误:'unmatched parenthesis )'for the last parentheses。
有人知道我该如何表达吗?
谢谢!
更新 问题似乎是[]里面的[]。 工作正则表达式只有 1 "C:.."-line:
P:(?<ParentName>[A-Za-z0-9-_]+)-(?<ParentAge>[A-Za-z0-9-_]+)
C:[A-Za-z0-9-_]+\n
对于多个“C:..”-行,正则表达式不起作用:
P:(?<ParentName>[A-Za-z0-9-_]+)-(?<ParentAge>[A-Za-z0-9-_]+)
[C:[A-Za-z0-9-_]+\n]+
第二行的第一个[与第一个]匹配,而应该是第二个]。
【问题讨论】:
-
JavaScript 不支持命名组。
-
@Pointy ECMAScript 2018 兼容 JS 正则表达式。
-
@WiktorStribiżew 是的,我记得 :) Here 但是它没有得到广泛支持
-
谢谢!但命名组工作;)。只有在尝试在列表中表达它们时才会出现问题
-
[ ]子表达式中的那些逗号对我来说似乎很奇怪;您不需要逗号来分隔字符范围,并且逗号将被视为允许的字符集的一部分。
标签: javascript arrays regex typescript