0

この正規表現をサイトフォーラムから取得して、テキスト内のリンクを検索し、クリックできるようにhtmlリンクに置き換えました。

問題は、誰かが次のような新しいYouTubeリンクの1つを入力したときに発生しました。

http://youtu.be/djKd189-ag2

何が起こるかというと、リンクはダッシュまで構成され、-ag2はそれ自体に残されます。

私はphpregexについて十分に知らないので、ダッシュの解析を追加するためにこれをあえて変更することさえできないので、私はいくつかの助けを得ることができることを望んでいました:

$newText = preg_replace('@((http|https)://([\w-.]+)+(:\d+)?(/([\w/_.]*(\?\S+)?)?)?)@', 
             '<a href="$1" class="link1" target="_blank">$1</a>',$text);

\S+の部分のあたりだと思います

4

1 に答える 1

2
$newText = preg_replace('@((http|https)://([\w-.]+)+(:\d+)?(/([\w/_-.]*(\?\S+)?)?)?)@', 
             '<a href="$1" class="link1" target="_blank">$1</a>',$text);

必要なのは、「[\ w/_。]」と書かれている「-」だけです。

于 2012-05-08T13:15:39.050 に答える