2011-08-22 119 views
0

我正在尋找一個可以匹配url的模式。url匹配正則表達式爲php

所有這些將包含「.no」,因爲只有挪威域輸入。

我覺得需要什麼是這樣的:

搜索之前和之後「沒有」空格或斷行,而這場比賽將是一個鏈接。

它應該匹配(與它周圍的所有文本)什麼的一些例子:

test.no 
test.no/blablabla/ 
test.no/blablabla/test.html 
test.no/blablabla/test.php 
test.no/blablabla/test.htm 

,這應該然後用

<a href="http://www.MATCH">MATCH</a> 

任何人都代替可以算出來?

+0

你試過[google搜索](http://www.google.ru/#q=URL+REGEX&oq=URL+REGEX)或[搜索](http://stackoverflow.com/search?q=URL+regex)? – J0HN

+0

是的,但我發現所有的例子都包含像「.com」這樣的東西,並且對於我需要的東西來說似乎過於複雜。 –

+0

網址是一件非常複雜的事情。查看我的回答以及Gruber指定的(有效)[測試URL](http://daringfireball.net/misc/2010/07/url-matching-regex-test-data.text)。 – akirk

回答

1

這應該這樣做:。

$html = preg_replace("#\w+\.no[\w/.-]*#", '<a href="http://www.$0">$0</a>', $html); 
+0

hm that does not match'http:// www.smykkmybitchup.no/halskjeder/sterling-silver/sterling-silver-halskjede-nr-23.html' http://ideone.com/oiB6h –

+0

fixed(by adding a - 到[]部分的末尾) – akirk

0

檢查John Gruber's Regular expression for URLs並從那裏繼續。

+0

似乎對我所需要的東西來說太複雜了。我的意思是,我需要匹配的是一串包含'.no'的字符,然後在空格或換行符處停止匹配。鏈接中的模式似乎不符合我的'test.no'。 –

0

我希望這是不夠嚴謹: ^ [\ W \ d - \ \\。] +無* $