我需要找出一个正则表达式,可以选择方括号包围的文本,因为括号之间存在特定的单词。
我已经非常接近这个规则了:
/\[(.*?)ermittelbar(.*?)\]/gi
(我目前的目标是“ermittelbar”)
问题是,如果我在regexr.com上测试它,例如我看到如果我在我希望匹配的文本之前放置任何左括号,则选择将扩展为包括该开括号及其间的任何内容。
所以:
[created ermittelbar]
匹配。但同样如此:
[ ]was [created ermittelbar]
除非包含目标词,否则不包括初始选择后关闭或打开括号。
我有什么想法可以解决这个问题吗?
而不是.*
模式使用[^\][]
来匹配除括号之外的任何字符:
/\[([^\][]*?)ermittelbar([^\][]*)\]/gi
细节
\[
- 第1组:除了[
和([^\][]*?)
之外的任何其他字符,尽可能少[
- 文字子串]
- 第2组:除了ermittelbar
和([^\][]*)
之外的任何其他字符,尽可能多