^ 表示对字符集取非匹配
空白元字符
- \f 换页符
- \n 换行符
- \r 回车符
- \t 制表符
- \n 垂直制表符
- WINDOWS 系统的换行符是\r\n
- linux 系统的换行符是\n
数字元字符
- \d 任意一个数字
- \D 任意一个非数字字符
字母元字符
- \w 任意一个字母、数字、或者下滑线
- \W 任意一个非字母数字下划线的字符
空白元字符
- \s 任意一个空白字符
- \S 任意一个非空白字符
其他进制的数字字符
- \x 16 进制
- \0 八进制
posix 字符
- [:alnum:] 任意一个数字或字母
- [:alpha:] 任意一个字母
- [:blank:] 空格或制表格
- [:cntrl:] ascii 控制字符
- [:digit:] 任意一个数字
- [:lower:] 任意一个小写字母
- [:upper:] 任意一个大写字母
- [:print:] 任何一个可打印字符
- [:graph:] 任何一个可打印字符,除了空格
- [:punct:] 既不属于数字字母又不属于控制符的字符
- [:space:] 任何一个空白字符
- [:xdigit:] 任何一个 16 进制数字
有多少个匹配
- \+ 一个字符的多次匹配
- \* 匹配零个或多个字符
- ? 前面的表达式匹配一次或零次
- {} 匹配的重复次数
- +? *? {n,} 懒惰型元字符
位置匹配
- \b 单词边界
- \B-\B 将会匹配前后都不是单词边界的连字符
- ^ 字符串开头
- $ 字符串结尾
- (?m) 启动分行匹配模式,必须出现在整个模式最前面
回溯引用:前后一致匹配
- \n 第 n 个子表达式,第 0 个可以代表整个表达式
- \$ 替换模式的\n
回溯引用中的大小写转换
- \E 结束转换
- \U 将\U 到\E 之间的字符转化成大写
- \L 将\L 到\E 之间的字符转化成小写
- \u 将下一个字符转换成大写
- \l 将下一个字符转换成小写
前后查找
- (?=) 向右查找但是不消费
- (?<=) 向左查找但是不消费
- (?!) 向右查找取非(右边不是)
- (?<!) 向左查找取非(负向后查找)
嵌入条件
- (?(1).......) 回溯引用条件,只有当\1 满足的时候才进行接下来的匹配
- (?(...₁)....) 前后查找条件,只有当(...₁)满足的时候 才进行接下来的匹配
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于