正则表达式 随笔

1.通配符

\d 数字   \D反之
\w 数字 字母 下划线    \W反之
\s 空格 制表符   \S反之
    \b 匹配一个零宽单词边界,如一个字母与一个空格之间。
    s代表一个字符 但b是定位符
. 任意单个字符

2.自定义通配符

[abcd] 单个字符 abcd 
[0-9a-z] 单个字符 0到9 a到z
[0-] 单个字符 0或者-
() 一个字符序列的整体,同时也有编号的作用,可见8.反向引用

3.还原特殊符号

//Q //E

4.定义出现次数

{ 0, }{1}

4.1专门的符号

? {0,1} 0次或者1次 
* {0,} 0次到无穷次  
+ {1,} 1次到无穷次
|  或者

5.贪婪模式与非贪婪模式

.+ 默认为贪婪模式
.+? 非贪婪模式

6.定位符

^ 开头 只能放在表达式开头
$ 末尾 只能放在表达式末尾
\b 匹配一个零宽单词边界,如一个字母与一个空格之间。\B反之

7.正反向预搜索

正向预搜索
    字符A(?=字符B)  找到A右边有B的A
    字符A(?=字符B|字符C) 找到A右边有B或者C的A
    字符A(?!字符B)  找到A右边没有B的A
反向预搜索
    (?<=字符B)字符A  找到A左边有B的A
    (?<!字符B)字符A  找到A左边没有B的A

8.反向引用

(字符a)(字符b)\2\1 匹配字符abba
((字符a)字符b)\1 匹配字符abab 
((字符a)字符b)(字符c)\2 匹配字符abca  ab编号1 a编号2 c编号3
    编号按左括号的顺序进行编号
(?:(?:字符a)字符b)(字符c)\1 匹配字符abcc
    ?: 表示此左括号不参与编号
((字符a)字符b)(?<别名Key>字符c)\k<别名Key> 匹配字符abca
    ?<别名> 表示给当前左括号内容 取别名
    \k<别名> 匹配之前标记的内容
posted @ 2023-08-04 22:07  Kn1ght  阅读(28)  评论(0)    收藏  举报