简单运用正则表达式

技术分享2个月前更新 bzsy
409 0 0

什么是正则表达式?

正则表达式能被用来在查找某种类型的文本。一个正则表达式是一个由普通字符、文字(例如,字母 a-z)以及特殊字符(被称为元字符),组成的一个文本串。

这个文本串描述了一个或多个符合的字符串,当搜索文本时就可以匹配到对应的内容。

在EmEditor中使用正则表达式

1.在搜索菜单下选择查找(在当前文件中查找文本模式),替换(查找文本模式然后替换它们),或在文件中查找选项(在多个文件中查找文本模式)。

2.勾选使用正则表达式复选框以及其他搜索参数,例如 区分大小写

3.输入要搜索的正则表达式然后点击「查找」。如果用 在文件中查找,还要输入文本类型(如果多于 1 个文本类型的话,用分号隔开),还有要搜索的文件夹。如果用替换,还要输入要替换被找到的文本模式的文本(可以用反向引用 -如下)。

正则表达式语法

详细语法列表参考EmEditor 帮助: 正则表达式语法

中文文本常用的正则语法

汉字

经过测试,可以匹配3500常用汉字,和7000通用汉字

[一-龟]

数字

数字范围 含义
\d 任何 0-9 的数字,包含半角数字、全角数字、罗马数字等等
[0,9] 匹配半角下的数字
[1 , 9] 匹配整数 1,2,3,…,9。
[ , 9) 匹配任何小于 9 的整数。
[1.0 , 9.0) 匹配任何大于或等于 1.0,并且小于 9.0 的小数。
[ , 1.0) 匹配任何小于 1.0 的小数。
(2.0 , ] 匹配任何大于 2.0 的小数。
[1,0 , 9,0 “,” ] 匹配用逗号作为小数点,大于或等于 1.0 且小于 9.0 的十进制数。
[1 , 9 , 2] 匹配整数 1,3,5,7,9。

英文

正则表达式 说明
[abc] a、b、c中任意一个字符
[^abc] 除了a、b、c中任意一个字符
[a-z] a、b、c……z中任意一个字符
[a-zA-Z0-9] a~z、A~Z、0-9中任意一个字符
[a-z&&[^bc]] a-z中除了b和c以外的任意一个字符,其中&&表示“与”的关系
\l 任何 a-z 的小写字符
\u 任何 A-Z 的大写字符

其他符号

正则表达式 说明
\n 一个换行符
\r 在文件中替换表示一个回车符
\t 一个 tab,制表符
(.*?) 匹配多个字符
[^\x00-\xff] 匹配所有全角符号,包含汉字和全角标点

举例实践

问题设定一

我们有一个10万字的文本,需要在所有汉字字符和小写英文字符之间添加一个空格。

撰写正则表达式

查找:([一-龟])([a-z]) 
替换:\1 \2

解释

[一-龟]代表汉字,[a-z]代表小写英文。
添加括号是为了在替换中用\1 表示第一个括号中的内容,\2 表示第二个括号的内容,从而保留原有的字符不变,在\1\2之间添加一个空格,再点击替换全部即可。

问题设定二

还是一个10万字的文本,其中部分文字夹杂了无意义的小数点,要求将他们全部删除,但同时不能删除使用正确的小数点。

找规律

经过多次比对,发现这些小数点都在有着一定规律:都夹在汉字中间,其本应该是句号。

撰写正则表达式

查找:([一-龟])\.([一-龟]) 
替换:\1。\2

解释

[一-龟]代表汉字,小数点.作为正则表达式中的元字符,可以匹配除换行符外的任意字符,为避免歧义需要在其前面加\

\可以把下一个字符标记为一个特殊字符,一个文字,或一个向后引用。

例如,.作为正则表达式中的元字符,可以匹配除换行符外的任意字符,但\.就只代表.。又如,单独一个n只能与字符n相匹配。而但\n就代表一个换行符号。

© 版权声明

相关文章

暂无评论

暂无评论...