我试图建立一个基于签名的入侵检测系统,但是当匹配regex对抗有效负载时,我遇到了一个以插入符号^
开头的表达式,这意味着在正则表达式的一行开头匹配。
我想确定的是,这应该是在整个有效载荷的开始,还是简单地在有效载荷的任何地方,在换行符n
之后。
默认情况下,^
代表字符串的开头。
因此,假设您将整个有效负载(包括换行符)视为单个字符串,^
将意味着在有效负载的开头。
如果你想改变这种行为,你需要通过在regex的开头添加(?m)
来打开多行标志m
(取决于你使用的语言,可能有其他方法)。
此标志将使^
和$
匹配行的开始和结束,字符串的开始和结束在A
和Z
中可用。