所以我想要一个像这样工作的正则表达式:
获取[a-z0-9.-]但不是'example','example1','example3','user','home','h3llo'
修改
我需要在.htaccess
中使用此正则表达式例子可以是我想得的东西。
答案 0 :(得分:5)
您可能需要提供更多您想要匹配的示例,但这是一个开始:^(?!example[13]?)[a-z0-9.-]+$
>>> 'Match' if re.match('(?!example[13]?)[a-z0-9.-]', 'example') else 'No match'
'No match'
>>> 'Match' if re.match('(?!example[13]?)[a-z0-9.-]', 'example1') else 'No match'
'No match'
>>> 'Match' if re.match('(?!example[13]?)[a-z0-9.-]', 'example3') else 'No match'
'No match'
>>> 'Match' if re.match('(?!example[13]?)[a-z0-9.-]', 'dsfhdsagfir') else 'No match'
'Match'
它使用negative lookahead对您不想匹配的字符串失败。
答案 1 :(得分:1)
RewriteCond怎么样?我假设这是针对mod_rewrite的,因为你使用的是.htaccess文件。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^(example[13]?|user|home|h3llo)$
RewriteRule ^([a-z0-9.-]+)$ <make-your-rewrite-using-$1-here>
</IfModule>
[未测试]