2013-12-10 59 views
1

我有有,或多或少,2000個字符,包含的URL字符串(URL的鐵路)。我想用正則表達式從這個URL中獲得特定的值,但我不知道如何使用它們。PHP正則表達式來獲得斜線之間的特定值的URL

字符串的一部分會是這樣的:

$string = [...]http://localhost/project/gallery/http://localhost/project/case/category#/img#/case#/http://localhost/project/case/category#/img#/case#/http://localhost/project/sitemap[...] 

我想是讓符合類#/ IMG#/箱#/每一個不同的類別,圖像的所有信息和/或所有的情況下出現的(例如: 「主類別/ 45 /主/」 和 「次級類別/ 51/ID12」)

如果類#超過1個字,它加入了一個 「 - 」 (如: 「主類別」)

img#始終是2至3位數字(例如:「45」)。爲4至5個字符長字符串與所述兩個第一字符爲「ID」和其他2〜3個字符爲 -

情況#從純文本(「」如果超過1個字加入了與)變化數字(EG1: 「主殼體」,EG2: 「ID45」)

有一點需要注意,如果這能幫助任何人,是我想要得到的是總是情況/

我想答案/回覆不包含與SUBSTR等循環

+0

**這可能不是一個工作,正則表達式,但對於您所選擇的語言現有的工具。**的正則表達式是沒有魔杖,你揮手,恰好涉及字符串的每一個問題。您可能想要使用已經編寫,測試和調試的現有代碼。 在PHP中,使用['parse_url'](http://php.net/manual/en/function.parse-url.php)函數。 的Perl:['URI'模塊(http://search.cpan.org/dist/URI/)。 紅寶石:['URI'模塊(http://www.ruby-doc.org/stdlib-1.9.3/libdoc/uri/rdoc/URI.html)。 .NET: 'URI' 類](http://msdn.microsoft.com/en-us/library/txt7706a.aspx) –

回答

1

您可以使用此正則表達式來匹配您的輸入網址:

'~/case/([^/]+)/(\d{2,3})/([^/]+)/~i' 

配套用組#1的類別,組#2作爲IMG#和組#3爲情形3

工作演示:http://ideone.com/xrsVtf

+0

太感謝你了!這就是我一直在尋找的! +1的答案和工作演示!爲什麼正則表達式必須非常困難?! – barcasal

+0

不客氣,很高興它解決了。 – anubhava

相關問題