2013-03-22 53 views
0

我想這還不包括像管理一個特定的字符串的URL,並且沒有尾部斜槓(/)如何獲得URL具有無可比擬的字符串

例如下面是具有子字符串的URL 管理

1. http://www.domain.com/admin/abc/def 
    2. http://www.domain.com/admin/ 
    3. http://www.domain.com/admin 
    4. http://www.domain.com/slug-1/ 
    5. http://www.domain.com/slug-1/slug-2/ 

與正則表達式不匹配。

以下是URL的一些例子應當匹配:

1.http://www.domain.com/slug-1 
2.http://www.domain.com/slug-1/slug-2 
3.http://www.domain.com/slug-slug1/slug-2/slug-3 

此規則檢查如果一個斜線是不是在端 ^(。* [^ /])$

+0

你在UNIX,Windows和VIM,Emacs的,記事本工作...? – Zulu 2013-03-22 10:48:48

回答

1

嘗試Perlfile.txt包含您的URL,每行一個):

# Regex: (admin|.*\/$) with negation 
perl -ne "print unless /(admin|.*\/$)/" file.txt 

# Regex: ^((?!admin).)*((?!\/).)$ without negation. 
perl -ne 'print if /^((?!admin).)*((?!\/).)$/' file.txt 

輸出:

http://www.domain.com/slug-1 
http://www.domain.com/slug-1/slug-2 
http://www.domain.com/slug-slug1/slug-2/slug-3 
+0

感謝您的回覆。但不起作用 – Surinderpal 2013-03-22 10:27:43

+0

@surinderpal - 你使用Perl還是其他語言? – kamituel 2013-03-22 10:30:12

+0

我需要應用此正則表達式在.htaccess文件中重定向。例如RewriteRule ^(。* [^ /])$/$ 1/[L,R]。它會在每個網址後面加一個斜槓 – Surinderpal 2013-03-22 10:31:55

0

如果您使用的Unix/Linux:

cat yourfile | grep -Ev "/admin" | grep -Ev "/$" 
+0

它必須在Apache服務器.htaccess文件中工作任何操作系統 – Surinderpal 2013-03-22 11:07:27

-1

你可以這樣做

Cat FileName|grep -v admin 
相關問題