使用正则表达式删除重复括号之间的内容

Using Regex to delete contents between repeating brackets

我正在尝试删除包含特定修饰符 ('DeleteMe') 的括号内不需要的词,并且不删除包含其他词 ('DontDeleteMe') 的括号内的内容。 我虽然很简单,但由于重复的括号而被证明很困难,请参见下文。

[
aljdsfjfldsa      DeleteMe         aldsjflajdf
]
[
aldskjfal         DontDeleteMe     asdlkjflasdj
]
[
aljdsfjfldsa      DeleteMe         aldsjflajdf
]
[
aldskjfal         DontDeleteMe     asdlkjflasdj
]

期望的输出

[
aldskjfal         DontDeleteMe     asdlkjflasdj
]
[
aldskjfal         DontDeleteMe     asdlkjflasdj
]

我尝试了以下但问题是第二行将与第三行一起删除。

(?s)\[.*?'DeleteMe'.*?\]

您可以将单词边界与 negated character class [^

结合使用
\[[^][]*\bDontDeleteMe\b[^][]*\]

Regex demo

如果单词是 DeleteMe,您可以使用单词边界匹配它并用空字符串替换。

\[[^][]*\bDeleteMe\b[^][]*\]

Regex demo