正则表达式 - 在字符串中提取URL

时间:2010-10-20 23:09:05

标签: regex

我有一个字符串,其中嵌入了大约2k个URL,需要有关正则表达式模式的帮助才能提取URL。

嵌入了URL的字符串示例

“blahblahblah; HTTP://subdomain.server.com/index.asp ID = 1000; blahblahblah;”

网址始终以“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;”

非常感谢任何帮助。

谢谢!

3 个答案:

答案 0 :(得分:1)

更准确的正则表达式是(http://subdomain.server.com/ [^;] *);

它匹配域,然后匹配除分号之外的所有字符,然后在末尾匹配分号。由于期间是正则表达式中的特殊字符,因此需要使用期间的反斜杠来转义它们。

答案 1 :(得分:0)

没关系 - 我明白了。 (http://subdomain.server.com/).*?(;)

答案 2 :(得分:0)

为什么你不能只使用你的语言string.split(';')等价的是什么原因?