editplus正则匹配查找替换(不支持跨行匹配)

editplus正则匹配查找替换(不支持跨行匹配)
正则表达式是一个包含普通文本加上指示为扩展特殊字符的搜索字符串的搜索选项。正则表达式允许更多的高级搜索和替换。

例如,您可以使用正则表达式“[0-9]”查找任何的数字。同样地您可以使用正则表达式“[^0-9]”查找任何匹配的非数字的字符。

在查找、替换以及在文件中查找命令中,EditPlus 支持下列的正则表达式。

表达式 描述
\t 制表(跳格)字符。
\n 换行。
. 匹配任何字符。
| 在它的左边和右边的任何一个表达式匹配目标字符串。例如“a|b”匹配“a”和“b”。
[] 括号内的任何字符可能匹配目标字符。例如“[ab]”匹配“a”和“b”;“[0-9]”匹配任何数字。
[^] 括号内的没有任何字符可能匹配目标字符。例如“[^ab]”匹配“a”和“b”除外的所有字符;“[^0-9]”匹配任何非数字的字符。
* 在星号左边的字符在表达式中可能匹配 0 次或多次。例如“be*”匹配“b”,“be”和“bee”。
+ 在加号左边的字符在表达式中可能匹配 1 次或多次。例如“be+”匹配“be”和“bee”,但不匹配“b”。
? 在问号左边的字符在表达式中可能匹配 0 次或 1 次。例如“be?”匹配“b”和“be”,但不匹配“bee”。
^ 仅当 ^ 右边的表达式在行开始的位置时匹配。例如“^A”仅匹配在行开始位置的“A”。
$ 仅当 $ 左边的表达式在行结束的位置时匹配。例如“e$”仅匹配在行结束位置的“e”。
() 影响表达式的计算顺序同时也用来标记表达式。
\ 转义字符。若您要使用字符“\”本身,您必须使用“\\”。
已标记的表达式是由()围住的。标记的表达式可以被 \0、\1、\2、\3 等引用。\0 指示一个匹配完整子串的标记的表达式。\1 指示第一个标记的表达式,\2 是第二个,等等。查看下列的例子。

原文     搜索       替换        结果
abc     (ab)(c)    \0-\1-\2   abc-ab-c
abca    (b)(c)     \0-\1-\2   abc-b-c
abc     (a)b(c)    \0-\1-\2   abc-a-c


<body[^><div class="mydiv">]+>   \0<div id="sss">

Name      姓名
Sex    性别
Height    身高
BirthDate      出生日期

[ ]+(.+)   as \1

只一句,仅一句:
<[^>]*>
 
拆解开:

[^>]

解说:
1、<*>:匹配“<”开始,到最后一个“>”;
2、[^>]:除了“>”这个符号,都匹配;
整个的意思:匹配“<”开始,一直往后匹配,除了遇到“>”这个符号的字符全部匹配中,然后最后匹配到一个“>”,即:<xxxxxxxx(这里不包括“>”,如果包括“>”则*号的任务完成,即截止在“>”之前)然后再匹配上“>”符。
 
网络上的Editplus正则,长篇大论,都是牛人写的……

-----------------
Editplus只支持以下正则:
\t 制表符
\n 新行
. 匹配任意字符
| 匹配表达式左边和右边的字符. 例如, "ab|bc" 匹配 "ab" 或者 "bc"
[] 匹配列表之中的任何单个字符. 例如, "[ab]" 匹配 "a" 或者 "b". "[0-9]" 匹配任意数字
[^] 匹配列表之外的任何单个字符. 例如, "[^ab]" 匹配 "a" 和 "b" 以外的字符. "[^0-9]" 匹配任意非数字字符
* 其左边的字符被匹配任意次(0次,或者多次). 例如 "be*" 匹配 "b", "be" 或者 "bee"
+ 其左边的字符被匹配至少一次(1次,或者多次). 例如 "be+" 匹配 "be" 或者 "bee" 但是不匹配 "b"
? 其左边的字符被匹配0次或者1次. 例如 "be?" 匹配 "b" 或者 "be" 但是不匹配 "bee"
^ 其右边的表达式被匹配在一行的开始. 例如 "^A" 仅仅匹配以 "A" 开头的行
$ 其左边的表达式被匹配在一行的结尾. 例如 "e$" 仅仅匹配以 "e" 结尾的行
() 影响表达式匹配的顺序,并且用作表达式的分组标记
\ 转义字符. 如果你要使用 "\" 本身, 则应该使用 "\\"

不支持跨行匹配,比如别想区配:
<a
href=...></a>
中间过渡解决方案:
先用正则,把换行替换成一个页面里没有的字符,比如“●”,使所有数据在同一行,然后要怎么做就怎么做吧,最后把特殊字符再换回成换行。

猜你喜欢

转载自hztjie.iteye.com/blog/1986687