匹配中文字符,但并不包含标点符号:[\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* 。
参考文献