0

Twitter ハッシュタグを正規表現したい。このコードでは:

    $html = preg_replace("#(^|[\n ])\#([^ \"\t\n\r<]*)#ise", "'\\1<a    href=\"".$website_content_url."/search=%23\\2\" target=\"_self\">#\\2</a>'", $html);

すべてがうまくいきます!しかし、私がこの言葉を使うとき: #Männer! リンクには ! が含まれます。しかし、リンクが ! の前に停止することを望みます。のように入力できるその他の兆候 またはドット。しかし !まだ表示されているはずです;)

それは可能ですか?

ありがとう :)

4

1 に答える 1

1

興味深い部分に焦点を当てましょう:

\#([^ \"\t\n\r<]*)

このパターンは次のように機能します。

\#          // match #
(           // open a capture group
  [^...]    // a negated character class which matches any character 
            // that is **not** inside this class
  *         // match the previous group / class zero or more times
)           // close capture group

文字クラス内には、\"\t\n\r<スペース引用符、タブ、ライン フィード、キャリッジ リターン、. 句読点をクラスに追加するだけです。例: .[^ \"\t\n\r<]<[^ \"\t\n\r<!]

ウムラウトについては、特別なことをする必要はありません。


正規表現を学習するための良い出発点: http://regular-expression.info/

于 2013-02-10T21:13:00.850 に答える