正则表达式笔记

  • A+
所属分类:安全博客

POSIX字符集

[:space:] 所有空白字符(新行,空格,制表符)[trnvf]

[:digit:] 数字

[:xdigit:] 任何一个十六进制数(即:0-9,a-f,A-F)

[:punct:] 所有标点符号

[:alpha:] 所有的字母 包括汉字

[:upper:] 所有的大写字母

[:lower:] 所有的小写字母

[:alnum:] 字母和数字 相当于[0-9a-zA-Z] 包括汉字

[:cntrl:] 控制字符 [x00-x1Fx7F]

[:print:] 非空字符 类似[:graph:] 但包括空白字符 [x20-x7E]

[:graph:] 空白字符之外的字符 [x21-x7E](非空格、控制字符)

[:blank:] 空格(space)与定位符(tab)

[:ascii:] ASCII 字符 [x00-x7F]

正则表达之环视(Lookaround)

(?<=Expression) 逆序肯定环视,表示所在位置左侧能够匹配Expression

(?<!Expression) 逆序否定环视,表示所在位置左侧不能匹配Expression

(?=Expression) 顺序肯定环视,表示所在位置右侧能够匹配Expression

(?!Expression) 顺序否定环视,表示所在位置右侧不能匹配Expression

环视是正则中的一个难点,对于环视的理解,可以从应用和原理两个角度理解,如果想理解得更清晰、深入一些,还是从原理的角度理解好一些,正则匹配基本原理参考 NFA引擎匹配原理。

上面提到环视相当于对“所在位置”附加了一个条件,环视的难点在于找到这个“位置”,这一点解决了,环视也就没什么秘密可言了。

顺序环视匹配过程
对于顺序肯定环视(?=Expression)来说,当子表达式Expression匹配成功时,(?=Expression)匹配成功,并报告(?=Expression)匹配当前位置成功。

对于顺序否定环视(?!Expression)来说,当子表达式Expression匹配成功时,(?!Expression)匹配失败;当子表达式Expression匹配失败时,(?!Expression)匹配成功,并报告(?!Expression)匹配当前位置成功;

Source:wolvez.club | Author:wolvez

相关推荐: Linux反弹shell

Linux反弹shell/01 bash -i反弹一,命令分解前置知识文件描述符: 0 —————- 标准输入 1 —————– 标准输出 2 —————– 标准错误输出 重定向符: 1> ------------ 更改标准输出 1< ------…

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: