我有HTML /文本字符串,並希望匹配文本的所有鏈接類似的部分真正的超鏈接與A標記。對於這個問題,我試圖匹配「www.somesite.domen」模式。但是,如果模式在句子結尾處接近標點符號,該怎麼辦?正則表達式鏈接式匹配沒有最後的坦途字符
如何匹配沒有最後一個字符的圖案是標點符號?
- www.somesite.domen。
- www.somesite.domen,
- www.somesite.domen?
- www.somesite.domen!
- www.somesite.domen /?id = 1?
下面是一個使用該函數我':
function make_links($text)
{
return preg_replace(
array(
'/(^|\s)(www\.[^<>\s!,]+)(!$|\s|\.|\:|\!|,|\?)/iex'
),
array(
"stripslashes((strlen('\\2')>0?'\\1<a target=\"_blank\" href=\"http://\\2\">\\2</a>\\3':'\\0'))"
),
$text
);
}
但是,當 ''要麼 '?'字符是句子中的最後一個,我的功能也將它們帶入鏈接。
任何想法如何解決這種情況?謝謝!
你的文本是否包含'[]'來分隔域名? – nhahtdh
我的文字不包含'[]'。 – Branislav
參見http://stackoverflow.com/questions/206059/php-validation-regex-for-url –