Regex 如果找到给定单词,则在括号之间选择正则表达式
我需要制定一个正则表达式,它可以选择方括号中的文本,因为括号之间有一个特定的单词 我已经非常熟悉这个规则:Regex 如果找到给定单词,则在括号之间选择正则表达式,regex,Regex,我需要制定一个正则表达式,它可以选择方括号中的文本,因为括号之间有一个特定的单词 我已经非常熟悉这个规则: /\[(.*?)ermittelbar(.*?)\]/gi (我目前的目标词是“ermittelbar”) 问题是,例如,如果我在regexr.com上测试它,我会发现如果我在我希望匹配的文本之前放置任何左括号,那么选择将扩展到包括该左括号和中间的任何内容 因此: 是匹配的。但事实也是如此: [ ]was [created ermittelbar] 除非包含目标词,否则初始选择后的结束
/\[(.*?)ermittelbar(.*?)\]/gi
(我目前的目标词是“ermittelbar”)
问题是,例如,如果我在regexr.com上测试它,我会发现如果我在我希望匹配的文本之前放置任何左括号,那么选择将扩展到包括该左括号和中间的任何内容
因此:
是匹配的。但事实也是如此:
[ ]was [created ermittelbar]
除非包含目标词,否则初始选择后的结束括号或开始括号不包括在内
有什么办法可以解决这个问题吗?不要使用
*
模式使用[^\][
匹配任何字符(不包括括号):
/\[([^\][]*?)ermittelbar([^\][]*)\]/gi
看
详细信息
-\[
char[
-第1组:除([^\][*?)
和[
以外的任何字符,尽可能少]
-文字子字符串ermittelbar
-第2组:除([^\][]*)
和[
以外的任何字符,尽可能多]
-\]
char]
/\[([^\][]*?)ermittelbar([^\][]*)\]/gi