编辑: Solved it我自己,这是一个命令语法错误,与正则表达式无关。
我试图匹配以下模式:
(.*)
<FilesMatch "(^\.ht|~$|\.bak$|\.BAK$|\.old$)">
(.*)
Order Allow,Deny Deny from all
(.*)
</FilesMatch>
(.*)
<DirectoryMatch "(/CVS/|.svn)">
(.*)
Order Allow,Deny Deny from all
(.*)
</DirectoryMatch>
(.*)
(.*) meaning anything
使用grep -P "regex"
和此正则表达式:
<FilesMatch \"\(\^\\\.ht\|~\$\|\\\.bak\$\|\\\.BAK\$\|\\\.old\$\)\">(.*\n){1,}Order Allow,Deny Deny from all(.*\n){1,}<\/FilesMatch>(.*\n){1,}<DirectoryMatch \"\(\/CVS\/\|\.svn\)\">(.*\n){1,}Order Allow,Deny Deny from all(.*\n){1,}<\/DirectoryMatch>
通过以下示例文件:
<FilesMatch "(^\.ht|~$|\.bak$|\.BAK$|\.old$)">
Order Allow,Deny Deny from all
</FilesMatch>
<DirectoryMatch "(/CVS/|.svn)">
Order Allow,Deny Deny from all
</DirectoryMatch>
根据regex101,它应该有用,但它没有,你对错误有什么了解吗?
感谢您的帮助。
答案 0 :(得分:2)
Okey这是我自己的错,我用grep -P "regex"
而不是grep -P 'regex'
......
它也适用于pcregrep -M 'regex'
。
非常感谢!