如果找到给定的单词,正则表达式在括号内选择

问题描述 投票:4回答:1

我需要找出一个正则表达式,可以选择方括号包围的文本,因为括号之间存在特定的单词。

我已经非常接近这个规则了:

/\[(.*?)ermittelbar(.*?)\]/gi

(我目前的目标是“ermittelbar”)

问题是,如果我在regexr.com上测试它,例如我看到如果我在我希望匹配的文本之前放置任何左括号,则选择将扩展为包括该开括号及其间的任何内容。

所以:

[created ermittelbar]

匹配。但同样如此:

[ ]was [created ermittelbar]

除非包含目标词,否则不包括初始选择后关闭或打开括号。

我有什么想法可以解决这个问题吗?

regex
1个回答
2
投票

而不是.*模式使用[^\][]来匹配除括号之外的任何字符:

/\[([^\][]*?)ermittelbar([^\][]*)\]/gi

regex demo

细节

  • qazxsw poi - qazxsw poi chart
  • \[ - 第1组:除了[([^\][]*?)之外的任何其他字符,尽可能少
  • [ - 文字子串
  • ] - 第2组:除了ermittelbar([^\][]*)之外的任何其他字符,尽可能多
  • qazxsw poi - qazxsw poi chart。
© www.soinside.com 2019 - 2024. All rights reserved.