常用符号
https://www.cnblogs.com/kekec/p/5255475.html
字符簇
重复次数
几个字符串或关系
例如,使用正则表达式:(GF_HAL|Sensor).*?fingerprint都可以检索到:
[GF_HAL]: [doWakeup] ### wakeup ### fingerprint
[Sensor]: [doWakeup] ### wakeup ###fingerprint000000000
懒惰模式
正则表达式懒惰模式(.*? .+?)_Jakou的博客-CSDN博客_正则懒惰模式
https://blog.csdn.net/mfkjq/article/details/80495581
定位符
选择符号()
用圆括号 () 将所有选择项括起来,相邻的选择项之间用 | 分隔。
() 表示捕获分组,() 会把每个分组里的匹配的值保存起来。缓冲区编号从 1 开始,最多可存储 99 个捕获的子表达式。每个缓冲区都可以使用 \n 访问,其中 n 为一个标识特定缓冲区的一位或两位十进制数。
notepad++可以使用\1、\2 ... 表示单次匹配中第1、2个()匹配的值。
with slkdjlf kkkk使用正则表达式查找(\bwi)(.*\b)替换为"\1-----\2":
"wi-----th slkdjlf kkkk"
此外,\1、\2也可以在正则表达式里面使用,例如(JavaScript):
var str = "Is is the cost of of gasoline going up up";
var patt1 = /\b([a-z]+) \1\b/igm;
document.write(str.match(patt1));
输出
Is is,of of,up up
JavaScript中在替换时使用$1、$2 ...
var str = "it is the cost of is gasoline going is up";
var patt1 = /\b([a-z]+)\b i(s)/igm;
document.write(str.match(patt1));
document.write(str.replace(patt1,"[$1'$2]"));
输出:
it is,of is,going is
[it's] the cost [of's] gasoline [going's] up
?:、?=、?<=、?!、?<!
(?:exp1):表示不捕获()内的内容,例如(?:\d)(\d+),则\1表示(\d+)。
?=、?<=、?!、?<!除了不捕获()内的内容,还对其前后匹配内容进行限制:
exp1(?=exp2):查找 exp2 前面的 exp1。
(?<=exp2)exp1:查找 exp2 后面的 exp1。
exp1(?!exp2):查找后面不是 exp2 的 exp1。
(?<!exp2)exp1:查找前面不是 exp2 的 exp1。
例如:
get_index: value = 247, index[0] = 4, index[1] = 4
正则表达式:(?<=index[)(0),替换为:“\1”
get_index: value = 247, index[“0”] = 4, index[1] = 4
运算符优先级
正则表达式 - 修饰符(标记)
参考:
菜鸟教程:https://www.runoob.com/regexp/regexp-syntax.html
正则表达式 – 元字符 | 菜鸟教程
https://www.runoob.com/regexp/regexp-metachar.html