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 后向引用先前括号分组的表达式
\0 将引用上次的匹配结果

 

示例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>([\s\S]*?)<\/p>

替换为: \1

方法2、

查找: <p>([\s\S]+?)<\/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标签

倾情礼赞新中国 喜迎妇女十一大|天辽地宁绽芳华 砥砺奋进谱华章 ——辽宁省妇联五年工作回顾之思想引领篇https://mp.weixin.qq.com/s/Q-G5BtmrHKd1jkj-LVaLHw

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


替换成

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

查找([\s\S]+?)(http.*)

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

去除空行

超找^[\s\t]*\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: <H4\1>
将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\0
首字母大写                                       Find: ([a-zA-Z])([a-zA-Z]*)    Replace: \U\1\L\2
平仮名ひらがな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}]

不包括特定字符的整行

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值