2011-11-29 67 views
0

我想拉的URL都在www.domain.com的格式。我想用簡單的正則表達式從文本文檔中提取它們。它只需要匹配www.domain.com,而不是其他網址變體。我需要一個正則表達式,將拉URL從一個文本文件

什麼是preg_match_all用最簡單的正則表達式()?

+1

退房這個職位 http://stackoverflow.com/questions/399250/going-where-php-parse-url-doesnt-parsing-只有最域/ 399316#399316 –

回答

2
/w{3}\.\w{2,}\.\w{3}/ 

這將匹配任何www.字有兩個以上的字母dot + 3個字母

匹配連字符或大寫字母域名:

/w{3}\.[\w\-]{2,}\.\w{3}/i 
+2

此正則表達式不會找到像www.do-main.com – Godwin

+1

它可能會幫助,如果它發現這種格式,以及...雖然這並不符合我的原始請求。 –

0
preg_match_all('%((mailto\\:|(news|(ht|f)tp(s?))\\://){1}\\S+)%m', $subject, $result, PREG_PATTERN_ORDER); 
for ($i = 0; $i < count($result[0]); $i++) { 
    // $result[0][$i]; 
} 

,如果你想輕鬆地拉URL的一部分還可以使用一個類,我寫道:https://github.com/homer6/altumo/blob/master/source/php/String/Url.php。查看相同目錄中的單元測試以查看使用情況。

如果你正在尋找一個好的方案來調整你的正則表達式的模式,我強烈建議regexbuddy

希望幫助...

1

我不做了一大堆用PHP,但正則表達式將是這樣的:

w{3}.([a-zA-Z0-9\~\!\@\#\$\%\^\&amp;\*\(\)_\-\=\+\\\/\?\.\:\;\'\,]*)? 

將返回開頭的所有域名的「www。」。它會忽略這個標籤的協議部分(例如http://

相關問題