我需要一块可以用来做不匹配的正则表达式。以下面的URL
为例 http://www.site.com/layout/default.aspx
http://www.site.com/default.aspx
http://www.site.com/layout.aspx
正则表达式不应匹配包含目录“layout”
的任何url字符串http://www.site.com/layout/default.aspx
而应该匹配
http://www.site.com/default.aspx
http://www.site.com/layout.aspx
如何使用.NET正则表达式执行此操作?
答案 0 :(得分:3)
使用否定前瞻:
^(?!.*/layout/)
你必须锚定到字符串的开头,否则你会得到误报,即仅(?!/layout/)
不起作用。
答案 1 :(得分:1)
如果你需要在一个正则表达式中挤压所有内容,请尝试使用负面预测,这与以下内容类似:
(?!layout)
答案 2 :(得分:0)
只需匹配/layout/
并反转结果,无论您使用何种语言。
E.g。用PHP:
if(!preg_match('#/layout/#i', $url)) {
// does not match layout
}
答案 3 :(得分:0)
PYTHON:
import re if not re.match('layout'): #do whatever here
re是python的正则表达式