什么是正则表达式?
正则表达式能被用来在查找某种类型的文本。一个正则表达式是一个由普通字符、文字(例如,字母 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
表示第二个括号的内容,从而保留原有的字符不变,在\1
与\2
之间添加一个空格,再点击替换全部即可。
问题设定二
还是一个10万字的文本,其中部分文字夹杂了无意义的小数点,要求将他们全部删除,但同时不能删除使用正确的小数点。
找规律
经过多次比对,发现这些小数点都在有着一定规律:都夹在汉字中间,其本应该是句号。
撰写正则表达式
查找:([一-龟])\.([一-龟])
替换:\1。\2
解释
[一-龟]
代表汉字,小数点.
作为正则表达式中的元字符,可以匹配除换行符外的任意字符,为避免歧义需要在其前面加\
。
\
可以把下一个字符标记为一个特殊字符,一个文字,或一个向后引用。
.
作为正则表达式中的元字符,可以匹配除换行符外的任意字符,但\.
就只代表.
。又如,单独一个n
只能与字符n
相匹配。而但\n
就代表一个换行符号。