正则表达式介绍及一些语法

    技术2022-07-14  76

    正则表达式介绍及一些语法

    简单的转译字符标准字符集合自定义字符集合量词字符边界正则的匹配模式选择符或分组断言

    简单的转译字符

    符号含义\n代表换行符\t代表制表符\\代表\本身\^,\$,\(,\),\{,\},\?,\+,\*,|,\[,\]匹配这些符号本身

    标准字符集合

    能够与 多种字符 匹配的表达式 注意区分大小写,大写是相反的意思

    符号含义\d任意一个数字,0~9中的任意一个\D非数字\w任意一个字母数字或下划线,A-Z,a-z,0~9,_\W除了字母数字下划线的任意字符\s包括空格、制表符、换行符等空白字符的其中任意一个\S除了空格、制表符、换行符之外的任意字符.小数点可以匹配任意一个字符,但是匹配不了换行符,如果要匹配包含\n在内的所有字符,一般用 [\s\S]

    自定义字符集合

    []方括号匹配方式:能够匹配方括号中的任意一个字符

    表达式匹配字符[ab@5]匹配 a 或者b或者@或者5^ab]匹配除了 a,b之外的任意字符[f-k]匹配 f到k之间的任意一个字符,包括 f 和 k[^A-F0-3]匹配除了A ~ F,0 ~ 3 之外的任意字符 在 [ ] 中 ^ 表示取反对的意思。正则表达式的特殊符号,被包含到中括号中,就是去了特殊意义,除了 ^ 和 - 之外。标准字符集合,除了小数点在中括号中会失去特殊意义,其他的不会。 [\dab],匹配数字或者a,b

    量词

    修饰匹配次数的特殊符号

    表达式含义{n}表达式重复n次 ,包括 n{m,n}表达式至少重复m次,至多重复n次 ,包括 m 和 n{m,}表达式至少重复m次 ,包括 m?匹配表达式0次或1次,相当于{0,1}+表达式至少出现一次,相当于{1,}*表达式不出现或者出现任意次,相当于{0,} 贪婪模式:匹配字符越多越好,默认。例如下图中如果写成c{2,6},就是会匹配到一个cccccc。非贪婪模式:就是在量词后面加一个 ?号。还是下图,写成c{2,6}?,就会匹配到3个cc

    如果连续的6个c,使用表达式c{2,3},会匹配到2个ccc,这是因为匹配到第一个ccc的时间会重新计数。

    字符边界

    符号含义^以什么开始$以什么结束\b左右边界不全是 \w ,即左右不全是字母,数字,下划线

    正则的匹配模式

    忽略大小写模式单行模式:整个文本看做一个字符串,只有一个开头,一个结尾。多行模式:每行都是一个字符串,都有开头和结尾。

    选择符或分组

    表达式作用|左右表达式之间 或 关系,匹配左边,或者右边()捕获组 1.在被修饰匹配次数的时间,括号中的表达式可以作为整体被修饰。2.取匹配结果的时间,括号中的表达式匹配到的 内容可以单独得到

    反向引用:每一对()会分配一个编号,使用()的捕获根据左括号从1开始自动编号。 通过反向引用,可以对分组已捕获的字符串进行引用,如下图:小括号中的表达式表示匹配两个字母,后面的\1表示对()中内容的引用,即()中匹配到go,\1再次引用go,这时候这个正则需要的就是 gogo

    断言

    只进行子表达式的匹配,匹配内容不计入匹配结果这个位置应该符合某个条件 表达式含义(?=exp)断言自身出现的位置 后面可以 匹配到表达式exp(?<=exp)断言自身出现的位置 前面可以 匹配到表达式exp(?!exp)断言自身出现的位置 后面不可以 匹配到表达式exp(?<!exp)断言自身出现的位置 前面不可以 匹配到表达式exp

    例如:断言自己后面可以匹配到ing的字符

    Processed: 0.020, SQL: 9