下文主要总结出来目前常用的字符及表达式
一.基本元字符
. 匹配任意单个字符
| 逻辑或操作
[] 匹配字符集合中的一个字符,这里面的字符不用转义
[^] 对字符集合求非
- 定义一个区间如【A-Z】
\ 定义一个字符转义
二. 数量元字符
* 匹配前一个字符(子表达式)的 零次或多次重复
*? *的懒惰型版本
+ 匹配前一个字符(子表达式)的1次或多次重复
+? +的懒惰型版本
? 匹配前一个字符(子表达式的零次或一次
{n} 匹配前一个字符(子表达式)的n次重复
{m,n} 匹配前一个字符(子表达式)的至少m次且至多n次重复
{n,} 匹配前一个字符(子表达式)的至少n次或更多次重复
{n,}? {n,}的懒惰型版本
三. 位置元字符
^或\A 匹配字符串的开头
$或\Z 匹配字符串的结尾
\< 匹配单词的开头
\> 匹配单词的结束
\b 匹配单词边界
\B \b的反义
四. 特殊字符元字符
[\b] 退格字符
\c 匹配一个控制字符
\d 匹配任意数字字符
\D 非数字
\f 换页符
\n 换行符
\r 回车符
\s 匹配一个空白字符
\S \s的反义
\t 制表符(TAB)
\v 垂直制表符
\w 匹配任意字会母数字字符或下划线字符及中文字符
\W \w的定义
\x 匹配一个16进制数字
\g 返回或替换所有符合条件的字符串
?# 注释
(?m) 分行匹配模式
五. 回溯引用和前后查找(只占位不消费使用)
() 定义一个子表达式
\1 匹配第1个子表达式,\2代表第2个子表达式,以此类推
以下几个必须用在子表达式中
?= 向前查找
?<= 向后查找
?! 向前负查找
?<! 向后负查找
?() 条件 if then
?()| 条件 if then else
六. 大小写转换
\E 结束\L或\l
\l 把下一个字符转换为小写
\L 把后面的字符转换为小写,直到\E为止
\u 把下一个字符转换为大写
\U 把后面的字符转换为大写 直到\E为止