Notepad++的正则表达式
常用语法
·\转义字符,使某些特定符号表达其本意,即作为字符的意义。
·^其右边的表达式被匹配在行首,该表达式只能从最开始的位置开始,表达式前面有空格也不行。
·.代表匹配任意单个字符,两个..代表可以匹配两个任意连续字符。
·$其左边的表达式被匹配在行尾。如e$匹配以e结尾的行,*$匹配任意字符结尾的行。一般使用aaa.*$匹配有aaa的行至本行结束,但aaa.*就能达到同样目的了。
·[]匹配区间内的任意单个字符,相当于是.的特殊情况,[abc]匹配a、b、c,[0-9]匹配任意单个数字。
·[^]匹配列表之外的任意单个字符。如[^a]匹配a之外的任意字符。
·*其左边的字符被匹配0次或多次。如be*匹配b,be,bee。.和*一般是连用,用于匹配连续的若干个任意字符。
·+其左边的字符至少被匹配一次,相当于*的特殊情况,不含0次。
·?其左边的字符被匹配0次或1次。如5?4匹配4、54
·()用于表达式分组的标记和影响表达式顺序。(表达式1)(表达式2)(表达式3),分布用\1,\2\3引用,引用部分在替换后仍保持原来的内容。
·\s用于匹配空格
·\b用于匹配单词边界
实用例子
111"aaa"111"aaa"111
查找表达式:(".*?")
替换表达式:#\1#
替换效果:111#"aaa"#111#"aaa"#111
给””之间(定义:””之间包括””本身)的内容左右加上“#”号,.*代表””内任意数量字符,?代表匹配最近的一个””的内容。\N(N是正整数)代表第N个括号内的内容,这是保持替换后指定范围内的内容保持不变的关键,只要把需要保护的内容用一个()包含起来。
改:如果只提取””内的内容,不包含””,则可以把””提出括号,查找表达式:"(.*?)"
如果提取一行内””之间的内容,不要求是最近的一个引号,即开头的””和最后的””之间的内容,查找表达式(".*")
如果替换后的内容不变,即根本没有替换,则查找表达式:(".*") 替换表达式:\1