如何使用正则表达式忽略字符串中的单词

时间:2011-01-10 02:54:25

标签: c# regex

我需要一块可以用来做不匹配的正则表达式。以下面的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正则表达式执行此操作?

4 个答案:

答案 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的正则表达式