2011-01-10 119 views
2

我需要一個可用於執行不匹配的正則表達式。舉個例子以下網址的如何使用正則表達式忽略字符串中的單詞

http://www.site.com/layout/default.aspx 
http://www.site.com/default.aspx 
http://www.site.com/layout.aspx 

正則表達式應該不匹配包含目錄「佈局」的任何URL字符串

http://www.site.com/layout/default.aspx 

,而是應符合在

http://www.site.com/default.aspx 
http://www.site.com/layout.aspx 

哪有我使用.NET正則表達式來做到這一點?

+1

取決於您使用的是什麼工具。 – 2011-01-10 02:57:41

+0

根據我的答案,它可以用負面預測來完成,這在大多數正則表達式實現中都受支持。 – 2011-01-10 03:06:20

回答

3

使用負向預測:

^(?!.*/layout/)

你必須錨定到字符串的開頭或者你會得到誤報,即單獨(?!/layout/)將無法​​正常工作。

0

只需匹配/layout/並反轉結果,無論您使用何種語言。

E.g.用PHP:

if(!preg_match('#/layout/#i', $url)) { 
    // does not match layout 
} 
0

PYTHON:

 
import re 
if not re.match('layout'): 
     #do whatever here 

再是正則表達式蟒蛇

1

如果你需要在一個正則表達式來擠一切,儘量排除模式,沿此線的東西:

(?!layout)

+0

這不起作用,因爲它會匹配字符串中沒有跟隨「佈局」的第一個位置。 – 2011-01-10 03:11:31

相關問題