regex 在Notepad++中,删除方括号及其内容,以及在闭括号后出现的任何逗号或连字符

kknvjkwl  于 2023-06-25  发布在  其他
关注(0)|答案(2)|浏览(400)

我正在寻找一个正则表达式在Notepad++中使用,用于删除所有方括号及其内容,以及在闭括号后面出现的逗号或连字符。正则表达式应该检测到要删除的文本中的以下示例:

[1]–[5]
[Alibaba], [7], [8]
[1-2]–[5]

到目前为止,我可以通过\[[^\]]*\]捕获括号及其内容。

vsnjm48y

vsnjm48y1#

你可以用这种方式扩展正则表达式来捕获逗号和连字符:\[[^\]]*\](?:,|-)?

nx7onnlm

nx7onnlm2#

使用^*]匹配方括号及其内容是正确的。此正则表达式通过查找[和]之间不是]的任何字符来工作。
现在,要扩展此正则表达式以包含任何逗号或连字符,您需要使用|运算符的作用类似于“或”。它允许正则表达式引擎在|.
此外,请记住,在许多正则表达式中,字符-,[,],(,),{,}具有特殊含义,如果您想按字面意思匹配它们,则必须使用\进行转义。
因此,完整的正则表达式可能如下所示:

\[[^\]]*\][,-]?

这将匹配任何字符串:
开头是[
后面跟着任意数量的字符,这些字符不是]
结束于]
可选后跟逗号或连字符-。
[,-]之后的?使模式的这一部分成为可选的,这意味着它可以匹配不以逗号或连字符结尾的字符串。如果您想确保模式始终在括号后包含逗号或连字符,只需删除?.

相关问题