「REGULAR EXPRESSION」- 常用代码

匹配中文字符,但并不包含标点符号:[\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]

常用特殊字符

.,匹配任意单个的字符,包括空格
例如:0.0 匹配 0x0、020、…

^,匹配行首的位置,即一个字符串的开始
例如:^10 匹配 10.1.1.1,不匹配 20.1.1.1

$,匹配行尾的位置,即一个字符串的结束
例如:1$ 匹配10.1.1.1,不匹配10.1.1.2

_,下划线,匹配任意的一个分隔符:匹配单个逗号(,)、左花括号({)、右花括号(})、左圆括号、右圆括号;匹配输入字符串的开始位置(同^);匹配输入字符串的结束位置(同$);匹配一个空格;
例如:_10 匹配 (10、{10、空格10;10_ 匹配 10)、10}、10空格

|,管道字符,逻辑或。x|y,匹配x或y
例如:100|200 匹配100或者200

\,转义字符,用来将下一个字符(特殊字符或普通字符)标记为普通字符
例如:\* 匹配 *

*,匹配前面的子正则表达式0次或多次
例如:10* 匹配1、10、100、1000、…
例如:(10)* 匹配空、10、1010、101010、…

+,匹配前面的子正则表达式1次或多次
例如:10+ 匹配10、100、1000、…
例如:(10)+ 匹配10、1010、101010、…

?,匹配前面的子正则表达式0次或1次
例如:10? 匹配1或10
例如:(10)? 匹配空或10

(),圆括号可以用来定义操作符的范围和优先度。
例如:gr(a|e)y等价于gray|grey。

[xyz],匹配正则表达式中包含的任意一个字符
例如:[123] 匹配255中的2

[^xyz],匹配正则表达式中未包含的字符
例如:[^123] 匹配123之外的任何字符

[a-z],匹配正则表达式指定范围内的任意字符
例如:[0-9] 匹配0到9之间的所有数字

[^a-z],匹配正则表达式指定范围外的任意字符
例如:[^0-9] 匹配所有非数字字符(即匹配0到9之外的任何字符)

常用正则表达式

# 处理汉字空格
([^\x00-\xff]) ([^\x00-\xff])

\1\2

# 中英文之间添加空格
([^\x00-\xff,、:。)(])([A-z])

\1 \2


([A-z…])([^\x00-\xff,、:。…)(])
\1 \2

# 逗号替换
([^\x00-\xff])\s*,
\1,


,\s*([^\x00-\xff])
,\1

# 其他替换处理
([^\x00-\xff])([\x00-\xff])

([A-z])([^\x00-\xff])
\1 \2

\s*。\s*
。

参考文献

中文正则表达式匹配-正则中文匹配