我正在寻找一个正则表达式在Notepad++中使用,用于删除所有方括号及其内容,以及在闭括号后面出现的逗号或连字符。正则表达式应该检测到要删除的文本中的以下示例:
[1]–[5] [Alibaba], [7], [8] [1-2]–[5]
到目前为止,我可以通过\[[^\]]*\]捕获括号及其内容。
\[[^\]]*\]
vsnjm48y1#
你可以用这种方式扩展正则表达式来捕获逗号和连字符:\[[^\]]*\](?:,|-)?
\[[^\]]*\](?:,|-)?
nx7onnlm2#
使用^*]匹配方括号及其内容是正确的。此正则表达式通过查找[和]之间不是]的任何字符来工作。现在,要扩展此正则表达式以包含任何逗号或连字符,您需要使用|运算符的作用类似于“或”。它允许正则表达式引擎在|.此外,请记住,在许多正则表达式中,字符-,[,],(,),{,}具有特殊含义,如果您想按字面意思匹配它们,则必须使用\进行转义。因此,完整的正则表达式可能如下所示:
\[[^\]]*\][,-]?
这将匹配任何字符串:开头是[后面跟着任意数量的字符,这些字符不是]结束于]可选后跟逗号或连字符-。[,-]之后的?使模式的这一部分成为可选的,这意味着它可以匹配不以逗号或连字符结尾的字符串。如果您想确保模式始终在括号后包含逗号或连字符,只需删除?.
2条答案
按热度按时间vsnjm48y1#
你可以用这种方式扩展正则表达式来捕获逗号和连字符:
\[[^\]]*\](?:,|-)?
nx7onnlm2#
使用^*]匹配方括号及其内容是正确的。此正则表达式通过查找[和]之间不是]的任何字符来工作。
现在,要扩展此正则表达式以包含任何逗号或连字符,您需要使用|运算符的作用类似于“或”。它允许正则表达式引擎在|.
此外,请记住,在许多正则表达式中,字符-,[,],(,),{,}具有特殊含义,如果您想按字面意思匹配它们,则必须使用\进行转义。
因此,完整的正则表达式可能如下所示:
这将匹配任何字符串:
开头是[
后面跟着任意数量的字符,这些字符不是]
结束于]
可选后跟逗号或连字符-。
[,-]之后的?使模式的这一部分成为可选的,这意味着它可以匹配不以逗号或连字符结尾的字符串。如果您想确保模式始终在括号后包含逗号或连字符,只需删除?.