我使用grep正则表达式匹配超过150个字符的字符串,没有空格。 我在Ubuntu的命令行中使用的正则表达式是这样的:
选项1:
grep -rle '[^\ ]\{150,\}' --include=\*.php --exclude-dir=cache
1选项
grep -rl --include=\*.php --exclude-dir=cache '[^\ ]\{150,\}'
现在有了命令我得到了结果,但并不完全是我期望的结果, 例如,当我尝试
时2选项
grep -rle 'base64_decode' --include=\*.php --exclude-dir=cache
我得到一个文件的结果列表say malicious.php 其内容如下:
'LqOC1ZYpuMOpuhuBTmNJrNmCKMiRkMQp68rRkMG2bfuaTmNJrNmpL8GKknNRb8QRAYy2K3PhHtEHt'.
'SNCLfOp68QsKjYpYZxz6ZisHDqaUea3AYF28Z7CK3PML1xc5ZYc'.
'A8WsKnNRLfQsAYyClpehHtEHDNNC0mPs68ipLYORYZWRL1rzKMYa5SgV5Zbn8MUlVZJBHmu'
我的问题是为什么这个文件的appsous.php没有列出regex option1和option2。
什么是正确的正则表达式列出的恶意.php指定大于n
个字符数而没有空格。
答案 0 :(得分:0)
对我来说,正确的是正则表达式如下所示,它只排除水平空间,但不排除垂直空间。
这实际上与问题中给出的字符串示例匹配。
grep -rle '[^\h]\{150,\}' --include=\*.php --exclude-dir=cache