Emeditor中使用正则表达式的一些技巧

阅读: 评论:0

Emeditor中使用正则表达式的一些技巧

Emeditor中使用正则表达式的一些技巧

正则表达式的功能非常强大,使用文本编辑器的过程中发现使用正则表达式进行替换非常方便,能完成许多普通的字符替换完成不了的效果,下面就是例子:

EmEditor文本编辑器中使用正则表达式进行替换的示例:

 

表达式 说明
[] 匹配列表之中的任何单个字符. 例如, "[ab]" 匹配 "a" 或者 "b". "[0-9]" 匹配任意数字.
[^] 匹配列表之外的任何单个字符. 例如, "[^ab]" 匹配 "a" 和 "b" 以外的字符. "[^0-9]" 匹配任意非数字字符.
[abxy0-6] 匹配abxy中任意一个字母或0-6任意一个数字
[^abxy0-6] 匹配除了abxy和0-6的任意一个字符

^ 其右边的表达式被匹配在一行的开始. 例如 "^A" 仅仅匹配以 "A" 开头的行.
() 影响表达式匹配的顺序,并且用作表达式的分组标记.
转义字符. 如果你要使用 "" 本身, 则应该使用 "".
. 匹配任意一个字符
t 匹配tab
n new line
r return
w word, 匹配任意一个字母(加上"_")
W 匹配任意一个非字母
s space, 匹配空格
S 匹配非空格
d digital,匹配任意一个数字
D 匹配任意一个非数字

{n,m} 匹配n到m次
? 匹配0或1次,相当于 {0,1}其左边的字符被匹配0次或者1次. 例如 "be?" 匹配 "b" 或者 "be" 但是不匹配 "bee".
* 匹配0或多次,相当于 {0,}其左边的字符被匹配任意次(0次,或者多次). 例如 "be*" 匹配 "b", "be" 或者 "bee".
+ 匹配1或多次,相当于 {1,}其左边的字符被匹配至少一次(1次,或者多次). 例如 "be+" 匹配 "be" 或者 "bee" 但是不匹配 "b".

^ 匹配行首
$ 匹配行尾
b boundary,匹配单词边界

| or
( ) 括号分组,用于后向引用
1 2 后向引用先前括号分组的表达式
将引用上次的匹配结果

 

示例1 

数据,将原始数据改为以逗号分隔:

原始数据:

TEXT   460011219411234 8615529880000

TEXT   460018827961234 8613178860000

TEXT   460015730611234 8618606850000

替换后数据:

TEXT,460011219411234,8615529880000

TEXT,460018827961234,8613178860000

TEXT,460015730611234,8618606850000

 

方法1、

查找:  ([A-Z]+?)s+(d+?)s+(d+)

替换为: 1,2,3

 

方法2、

查找:  ([^s]+?)s+

替换为: 1,

有的是"1"、"2",有的是"$1"、"$2",具体问题具体对待。

 

示例2 

数据,将<p>与</p>便签去掉,只留下便签内的内容:

原始数据:

                <p>

                    M:标记符号(一般不会单独出现);

                </p>

替换后数据:

M:标记符号(一般不会单独出现);

方法1、

查找: <p>([sS]*?)</p>

替换为: 1

方法2、

查找: <p>([sS]+?)</p>

替换为: 1

需要注意的是EmEditor查找多行数据需要设置下

EmEditor打开后搜索时在自定义里边吧.匹配换行符选中和.匹配换行符的行数改大后用那个正则匹配

 

示例3 

数据,将href=""内的网址替换成统一的网址数据:

查找: href="([^"]+?)"或者href="(.+?)"

替换为: href="${pubUrl!}"

注意这里不能用(.*)这个会匹配多余数据

 

示例4 

调换逗号前后的数据:

"瑞秋","Rachel"

"钱德勒","Chandler"

"钱德","Chandler"

"乔伊","Joey"

"菲比","Phoebe"

查找:(".*?"),(".*?")

替换为:2,1

 

示例5 

特殊字符:

^ ,$ ,( ) ,[ ] ,{ } ,. ,? ,+ ,*,| 

这些字符都是在正则表达式中被“征用”了,称之为特殊字符,引用的时候,必须前面加 "" 进行区分,比如你要用到 "$" 字符的时候,必须使用 "$",这样程序才不会以为你是在匹配行尾。

删除带"[]"的内容;

[00:53.90][Monica]:There's nothing to tell! 

[00:55.60][Monica]:He's just some guy I work with! 

[00:57.90][Joey]:C'mon, you're going out with the guy! 

[00:59.10][Joey]:There's gotta be something wrong with him! 

查找: [ .* ] (用时请清除空格)

 

一些Emeditor常用的正则表达式技巧

^[  /t]+

查找以上字符,并替换为空,可删除行首空白(包括全半角空格和制表符)。

 

[  /t]+$

查找以上字符,并替换为空,可删除行末空白(包括全半角空格和制表符)。

 

^[  /t]+|[  /t]+$

查找以上正则表达式,并替换为空,可删除行首和行末所有空白(包括全半角空格和制表符)。

 

[[:unicode:]]

代表所有中文字符;

示例6,查找文字和http连接,替换成html标签

倾情礼赞新中国 喜迎妇女十一大|天辽地宁绽芳华 砥砺奋进谱华章 ——辽宁省妇联五年工作回顾之思想引领篇

([[:unicode:]])1([[:unicode:]])2这个是匹配aabb式的中文


替换成

<li><a href="">倾情礼赞新中国 喜迎妇女十一大|天辽地宁绽芳华 砥砺奋进谱华章 ——辽宁省妇联五年工作回顾之思想引领篇</a></li>
 

查找([sS]+?)(http.*)

替换为<li><a href="2">1</a></li>

去除空行

超找^[st]*n

其他

双引号包含的字符串                                               “.*?”
[ ]包含的字符串                                                   [ [ ^  [ ] * ?  ](用时请清除空格)
变量名                                                            [a-zA-Z_][a-zA-Z_0-9]*
IP 地址                                   ([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})
各行Tab以后的文字列                                                t.*$
行头插入 //                                                     Find: ^   Replace with: //
删除行头 //                                                     Find: ^//
删除行后的空白文字(包含空格和制表位 Space+Tab)                Find: s+?$ 
将(abc)替换为[abc]                                              Find: ((.*?)) Replace: [1]
将<H3 …>替换为<H4 …>                                          Find: <H3(.*?)> Replace: <H41>
将9/13/2003替换为2003年9月13日 Find: ([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4}) Replace: 3年1月2日
将字母a-z替换为大写字母                                         Find: [a-z]      Replace: U
首字母大写                                       Find: ([a-zA-Z])([a-zA-Z]*)    Replace: U1L2
平仮名ひらがなHiragana                                         [x{3041}-x{309e}]
全角片仮名 全角カタカナFull-width Katakana                   [x{309b}-x{309c}x{30a1}-x{30fe}]
半角仮名 半角カナHalf-width Kana                                [x{ff61}-x{ff9f}]
中日韩 汉字CJK ideographs                                    [x{3400}-x{9fff}x{f900}-x{fa2d}]
中日韩 汉字符号CJK ideograph marks                              [x{3000}-x{3037}]
韩国字符Hangul                              [x{1100}-x{11f9}x{3131}-x{318e}x{ac00}-x{d7a3}]

不包括特定字符的整行

^(?!.*你好).*$

本文发布于:2024-01-29 10:40:49,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170649605014700.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23