网安总结日志(1)

网安笔记

正则表达式

https://regex101.com/(正则测试用的地址)

概念

正则表达式是一种形式语言(规律而不是语义)

正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串

通常用于:

校验:检查一个字符串是否包含指定模式子字符串

替换:将匹配的子字符串替换为给定的新字段

匹配:提取符合匹配模式的字符串

组成

正则表达式=多个pattern组成(模式单元)

pattern=代词(谁)+量词(多少)+定位介词(在哪里)

代词

指代一个特定字符(也就是找谁) (限定一个字符的范围)

常用代词如下:(在正则表达式当^表达就是非的意思)

代词 作用
\d 0-9的数字
\D 0-9的非数字
\w 匹配[_0-9a-zA-Z]中包括下划线的单词字符(和[Z-Az-a9-0]是等价的)
\W 匹配任何非单词字符。等价于 ‘[^A-Za-z0-9_]‘。
\s 空格
\S 非空格
\n 匹配一个换行符
\f 匹配一个换页符
\r 匹配一个回车符
x|y 匹配x或者y 例如:‘z|food’ 能匹配 “z” 或 “food”。’(z|f)ood’ 则匹配 “zood” 或 “food”。
. 任意字符(除了\n以外)
[xyz] 字符集,用来匹配其中的任意一个单词。例如:[abc]可以匹配”apple“中的a
[^xyz] 负值字符集,用来匹配其中未包含的字符。例如:[abc]可以匹配"apple"中的p
[x-y] 字符范围。例如:[a-z]可以匹配a-z的所有小写字母
[^x-y] 负值字符范围。跟上面反着来。
量词

通俗解释就是衡量有多少个代词

量词 意义
* 匹配前面的子表达式>=0次 例如:zo* 能匹配 “z” 以及 “zoo”。 * 等价于{0,}。
+ 匹配前面的子表达式>=1次 例如,‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。
匹配前面的子表达式1次或者0次 例如:“do(es)?” 可以匹配 “do” 或 “does” 中的"do" 。? 等价于 {0,1}。
{n} 匹配n次 (n为非负数) 例如:‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。
{n,} 匹配至少n次 例如,‘o{2,}’ 不能匹配 “Bob” 中的 ‘o’,但能匹配 “foooood” 中的所有 o。‘o{1,}’ 等价于 ‘o+’。‘o{0,}’ 则等价于 ‘o*’。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如 “o{1,3}” 将匹配 “fooooood” 中的前三个 o。‘o{0,1}’ 等价于 ‘o?’。请注意在逗号和两个数之间不能有空格。

“{m,n}”、“{m,}”、“?”、“*”和“+”之类的都算做是贪婪模式的量词

而在他们后面跟上一个"?" 就算做非贪婪模式的量词

贪婪模式和非贪婪模式的区别
定位词

通俗来讲就是这玩意儿在哪

定位词 意义
^ 匹配行首(字符串开始的位置)
$ 匹配行尾(字符串结束的位置)
\b 匹配单词边界 例如:er\b 就可以匹配beer后面的er 但是不能匹配very中的er
\B 匹配非单词边界 用法和上面相反
选择器

用来捕获匹配字符串(或者组合多种模式进行匹配)

(pattern):匹配pattern 并捕获这个字符串

(?:pattern)&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值