我正在尝试构建一个基于签名的入侵检测系统,但是当将正则表达式与有效负载匹配时,我遇到了一个以插入符号^
开头的表达式,这意味着在正则表达式中一行的开头匹配。
我想确定的是,这应该是整个有效载荷的开头还是在换行符\n
之后的有效载荷中的任何位置。
答案 0 :(得分:1)
默认情况下,^
代表字符串的开头。
因此,假设您将整个有效负载(包括换行符)视为单个字符串,^
将表示有效负载的开头。
如果您想要更改此行为,则需要在正则表达式的开头添加m
来打开多行标记(?m)
(取决于您使用的语言,可能还有其他这样做的方式)。
此标记会使^
和$
匹配行的开头和结尾,字符串的开头和结尾变为可用使用\A
和\Z
。