ホームページ  >  に質問  >  本文

*italic* などの文字列を <i>italic</i> に変換しますが、改行文字がアスタリスクの制限内にある場合は変換しません

PHP コードに次の正規表現があります:

リーリー ###良い結果。

ただし、

$line<br> が含まれる場合、たとえば リーリー

その後、正規表現は引き続きテキストを考慮し、次のように変換します。

リーリー

目標は、

<br> が見つかった場合にテキストを翻訳しないことです。正規表現を使用してこれを行うにはどうすればよいですか (いわゆる「否定先読み」を使用します)。あるいは、既存の正規表現を変更するにはどうすればよいですか?

注:

*This is my text*<br>Some other text<br> および *italic*<br>END のような文字列も考慮され、変換される必要があります。

アイデア: それとも

$ 行 を分解し、正規表現を使用して結果を反復処理する必要がありますか? !

P粉262073176P粉262073176227日前369

全員に返信(1)返信します

  • P粉396248578

    P粉3962485782024-03-30 20:42:40

    必要のないものに を一致させ、 テクニックを破棄すると、PHP (PCRE) で次の正規表現を使用できます。 リーリー

    $1 に置き換えます。

    正規表現のデモ

    PHP コード: リーリー

    イラスト:

    ######\*###:マッチ###*######
    • [^*]*: 0 個以上の非 # 文字 と一致します。 ############:マッチ############
    • \*:試合終了
    • #(*SKIP)(*F): この一致を破棄してスキップする PCRE 動詞
      |
      : または
    • \*([^*]*)\*: #s で囲まれた文字列 と一致します。
    • 返事
      0
  • キャンセル返事