2010-10-20 60 views
0

我有一個內嵌約2k個URL的字符串,需要使用正則表達式模式來提取URL。有URL字符串的正則表達式 - 提取字符串中的URL

實施例的嵌入式

「blahblahblah; HTTP://subdomain.server.com/index.asp ID = 1000; blahblahblah;」

該URL將始終以「http://subdomain.server.com/」開頭並以第一個「;」結尾。唯一改變的是子目錄和頁面。

從上面的例子中,我需要捕獲 「http://subdomain.server.com/index.asp?id=1000」

我試過(http://subdomain.server.com /)。*(;) - 但它不會停在第一個「;」。它實際上會抓取「http://subdomain.server.com/index.asp?id=1000;blahblahblah;」

任何幫助將不勝感激。

謝謝!

回答

0

沒關係 - 我明白了。 (http://subdomain.server.com/).*?(;)

+1

修復捕獲組:'(http://subdomain.server.com/.*?)(?:;)' – drudge 2010-10-20 23:16:47

0

任何你不能只用你的語言的原因string.split(';')等價於?

1

更準確的正則表達式是(http://subdomain.server.com/[^;]*);

它匹配域,然後匹配除分號以外的所有字符,然後在末尾匹配分號。這段時間的反斜槓是逃避它們的必要條件,因爲這段時間是正則表達式中的一個特殊字符。