我正在尝试获取以下字符串中的最后一个单词。
大约45分钟后,我似乎找不到斜杠,破折号和方括号的正确组合。
我最近的是
/(?![survey])[a-z]+/gi
它与以下字符串匹配,除了“ required”外,它返回匹配项“ quired”。我认为这是因为re
在单词Survey中。
survey[1][title]
survey[1][required]
survey[2][anotherString]
答案 0 :(得分:2)
解决此问题的一种方法是匹配整行并仅捕获所需的部分。
survey\[\d+\]\[([a-z]+)\]
答案 1 :(得分:2)
您使用的是字符集,它将把任何个字符排除在比赛的第一个字符之外,这不是您想要的。开始使用普通的否定前瞻:
(?!survey)[a-z]+
但是您还想匹配 final 字,这可以通过匹配后跟\]$
的字字符来完成,即]
和字符串的结尾:
[a-z]+(?=\]$)
https://regex101.com/r/rLvsY5/1
如果您想提高效率,请匹配整个字符串,但要捕获捕获组中方括号之间的内容-结果中最后一个重复捕获的组将是
>survey(?:\[(\w+)\])+