用notepad++批量取消字体标蓝
查找目标为:
\\textcolor\{blue\}\{(?<content>[\s\S][^\\]*?)\}
替换为:
\1
上面的替换没有替换包含引用的标蓝字体,因为“\ref{}”中也有右大括号,会影响正则替换。
解析:
- 上面的\\表示查找\符号。
- \{表示查找{符号。
- \}表示查找}符号。
- (?<content>要查找的模式)为固定用法,匹配要查找的模式,并把结果返回,用\1, \2这样的方式引用。
- [\s\S]*? 表示匹配任意字符,包含回车字符,如果替换为.,则表示匹配不包含回车字符的任意字符;\*表示前面的内容[\s\S]出现任意次,为贪婪原则,即尽可能多的匹配;*后面加上?表示非贪婪原则,即找到第一个满足要求的规则就行。
- 因为[\s\S]*? 也会匹配\,因为\后面大多数跟着大括号{},所以当匹配的内容中包括{}时会有问题,所以要求匹配的内容中没有\符号,用[^\\]实现,^表示非的意思。也可以替换成[^{^}]。
https://zhidao.baidu.com/question/541722218.html
http://faq.locoy.com/q-1064.html
https://www.runoob.com/regexp/regexp-rule.html