我有以下代碼將鏈接轉換爲字符串中的超鏈接。PHP REGEX將鏈接轉換爲字符串中的超鏈接 - 刪除上一期
$text_block = preg_replace('$(\s|^)(https?://[a-z0-9_./?=&-]+)(?![^<>]*>)$i', ' <a href="$2" target="_blank">$2</a> ',$text_block);
然而,如果該鏈接爲一個時期的結束,像「做http://google.com搜索。」,正則表達式中包含鏈接的時期。我如何改變上面的正則表達式來尋找並且不包含如果存在的時期?
編輯:澄清 - $text_block
是一個可能包含許多鏈接的大塊文本。正則表達式需要解析文本塊並找到並轉換所有找到的鏈接。
編輯2:正如在評論中指出的,我想你必須考慮像「.co.uk」這樣的域名。所以我想它必須尋找並刪除空白後面的最後時期,如果存在的話......變得棘手。有任何想法嗎?
你怎麼確定何時週期並且不需要? –
@MikeBrant:可能是在最後一個人時。 –
啊好點 - 例如沒有考慮過.co.uk。 – Chris