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
);
}
しかし、「。」また '?' 文字は文の最後です。私の機能はそれらをリンクにも取り入れています。
このケースを解決する方法はありますか?ありがとう!