2010-08-10 164 views
1

尋找一個正則表達式匹配以下相對URL是:正則表達式匹配相對URL

/ABC/所有URL開始,但我們不知道它在哪裏結束,它沒有任何文件擴展名結尾。

/ABC/XYZ

/ABC /第1部分/第2部分

/ABC /紅色/藍色/白色/綠色/黑色

等。

任何幫助?

+0

您對哪種編程語言感興趣? – kiamlaluno 2010-08-10 09:01:24

+0

@kiamlaluno:C# – Malik 2010-08-10 09:32:33

回答

3

試試這個正則表達式:

/abc/(?:[A-Za-z0-9-._~!$&'()*+,;=:@]|%[0-9a-fA-F]{2})*(?:/(?:[A-Za-z0-9-._~!$&'()*+,;=:@]|%[0-9a-fA-F]{2})*)* 

這是從ABNF of a generic URI的。

+0

感謝您的努力,但它給了我錯誤「解析正則表達式的錯誤」 http://regexhero.net/tester/ – Malik 2010-08-10 08:38:00

+0

@Malik:它適用於我。 – Gumbo 2010-08-10 08:44:44

+0

@Gumbo:讓我再試一次 – Malik 2010-08-10 08:48:27

0
/^\/abc\// 

但是我的猜測是你缺少的東西的問題....

+0

感謝您的努力,但不工作。那麼,我們面臨的問題是相對URL的長度是未知的,它不會以帶文件擴展名的點(。)結尾。我們確實已經爲相對網址創建了一個正則表達式,並以。和文件擴展名「/abc/.*?[|\x00-\x1F\"<>\|::**?/]+\.[a-zA-Z0-9]{3,4}」但不能能夠這樣做的未知長度 – Malik 2010-08-10 08:41:44

+0

也許你應該更好地解釋你的場景我總結你正在尋找一個(基本上隨機的)文本文件的任何東西是以abc開頭的URL?你是什麼planguage /正則表達式引擎使用? – RoToRa 2010-08-10 08:47:49

+0

@RoRoRa:現在我們正在使用 http://www.radsoftware.com.au/regexdesigner/和http://regexhero.net/tester/ 是的,我們希望的是讓所有的親戚其他情況下,在我之前的評論中提到過,我們使用文件擴展名來停止,但這種情況在以下情況下不可用:相關網址末尾沒有文件擴展名 構建正則表達式。 – Malik 2010-08-10 08:56:08

0

我在這裏寫的答案是PHP;在我寫這篇文章的那一刻,你沒有報告你有興趣回答哪種編程語言。

  • 如果你想有一個正則表達式來檢查路徑與/abc/

    preg_match('|^/abc/.*$|i', $path);

  • 如果你想有一個正則表達式返回後/abc/

    preg_match('|^/abc/(.*)$|i', $path, $matches);

  • 部分開始

在這兩種情況下,都可以避免正則表達式;你可以使用字符串函數。

+0

感謝您的努力。我們可以使用字符串函數,但這會花費更多時間。我們必須解析thousnads中的文件數量:( – Malik 2010-08-10 08:43:14