正则表达式笔记

admin 2022年5月17日03:59:09安全博客评论4 views947字阅读3分9秒阅读模式

POSIX字符集

[:space:] 所有空白字符(新行,空格,制表符)[\t\r\n\v\f]

[:digit:] 数字

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

[:punct:] 所有标点符号

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

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

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

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

[:cntrl:] 控制字符 [\x00-\x1F\x7F]

[: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)匹配当前位置成功;

FROM :WOLVEZ'S BLOG| Author:wolve

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月17日03:59:09
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  正则表达式笔记 http://cn-sec.com/archives/1012574.html

发表评论

匿名网友 填写信息

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