为了配置apache,我正在使用一个正则表达式。我的目标是匹配任何字符串,但提供的字符串。我知道有一些关于stackoverflow的问题,但到目前为止我无法修复它。
正则表达式应匹配
/home/www/dir1/*
/home/www/dir_wl/example1/*
/home/www/dir_wl/example2/*
它不应该匹配
/home/www/dir1/MEW/*
/home/www/dir_wl/example1/MEW/*
/home/www/dir_wl/example2/MEW*
以下是整行:
<Directory ~ "^/home/www/(dir1|dir_wl/.*(?!MEW))/(?!MEW/)">
任何帮助都非常有用!
答案 0 :(得分:0)
我得到了&#34; grep -P&#34;。 &#34; -P&#34;意味着&#34; Interpret PATTERN as a Perl regular expression&#34;。您正在使用的程序必须支持此功能。
我创建了文件&#34; dirs.txt&#34;具有以下内容:
/home/www/dir1/*
/home/www/dir_wl/example1/*
/home/www/dir_wl/example2/*
/home/www/dir1/MEW/*
/home/www/dir_wl/example1/MEW/*
/home/www/dir_wl/example2/MEW*
然后我运行这个命令。
cat dirs.txt | grep -P "^/home/www/(dir1|dir_wl)/(?!MEW)(((?!/MEW).)*$)"
它返回......
/home/www/dir1/*
/home/www/dir_wl/example1/*
/home/www/dir_wl/example2/*
这样做的方式更简单......
cat regex.txt | grep -E "^/home/www/(dir1|dir_wl)/" | grep -v -E "/MEW"