什么是正则表达式?
正则表达式能被用来在查找某种类型的文本。一个正则表达式是一个由普通字符、文字(例如,字母 a-z)以及特殊字符(被称为元字符),组成站长APP导航网的一个文本串。
这个文本串描述了一个或多个符合的字符串,当搜索文本时就可以匹配到对应的内容。
在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就代表一个换行符号。