正则表达式找到第二个字符串

时间:2018-12-07 06:41:32

标签: javascript regex

我正在尝试获取以下字符串中的最后一个单词。

大约45分钟后,我似乎找不到斜杠,破折号和方括号的正确组合。

我最近的是

/(?![survey])[a-z]+/gi

它与以下字符串匹配,除了“ required”外,它返回匹配项“ quired”。我认为这是因为re在单词Survey中。

survey[1][title]
survey[1][required]
survey[2][anotherString]

2 个答案:

答案 0 :(得分:2)

解决此问题的一种方法是匹配整行并仅捕获所需的部分。

survey\[\d+\]\[([a-z]+)\]

答案 1 :(得分:2)

您使用的是字符集,它将把任何个字符排除在比赛的第一个字符之外,这不是您想要的。开始使用普通的否定前瞻:

(?!survey)[a-z]+

但是您还想匹配 final 字,这可以通过匹配后跟\]$的字字符来完成,即]和字符串的结尾:

[a-z]+(?=\]$)

https://regex101.com/r/rLvsY5/1

如果您想提高效率,请匹配整个字符串,但要捕获捕获组中方括号之间的内容-结果中最后一个重复捕获的组将是

>
survey(?:\[(\w+)\])+

https://regex101.com/r/rLvsY5/2