ハッシュタグをサポートするフォーラムがあります。次の行を使用して、すべてのハッシュタグをリンクに変換しています。このパターンを使用して(^|\(|\s|>)
、URL 内の名前付きアンカーを拾わないようにしています。
$str=preg_replace("/(^|\(|\s|>)(#(\w+))/","$1<a href=\"/smalltalk.php?Tag=$3&".SID."\">$2</a>",$str);
この行を使用してハッシュタグを取得し、ユーザーがメッセージを投稿するときに別のフィールドに保存します。これにより、新しい行の先頭にあるハッシュタグを除くすべてのハッシュタグが取得されます。
preg_match_all("/(^|\(|\s|>)(#(\w+))/",$Content,$Matches);
m
&修飾子を使用しs
ても違いはありません。2番目のインスタンスで何が間違っていますか?
編集: 入力テキストはプレーンテキストまたは HTML です。問題の入力例:
#startoftextreplacesandmatches #afterwhitespacereplacesandmatches <b>#insidehtmltagreplacesandmatches</b> :)
#startofnewlinereplacesbutdoesnotmatch :(