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

共有スタイルを使用して連続する疑似タグを HTML タグに置き換える

<p>この行があります</p> <pre class="brush:php;toolbar:false;">a[link], a[link] a [link] text text text a [link] text a[link] text</pre> <p>そこで、テキストの前にある最初のリンクを見つけて、それらに対して 1 つの操作を実行し、特別なスタイル (この場合、おそらく 3 つ以上) で強調表示し、テキストの後ろにある他のリンクを見つけて強調表示したいと思います。それらをさまざまなスタイルで。 </p> <p>最初の 3 つのリンクしか見つけられませんでしたが、どれだけうまくできたかわかりません</p> <pre class="brush:php;toolbar:false;"><?php $re = '/^(a\[(\w [\s ]?) \],?\s?) /iu'; $str = 'a[リンク], a[リンク] a[リンク] テキスト テキスト テキスト a[リンク] テキスト a[リンク] テキスト'; preg_match($re, $str, $matches, PREG_OFFSET_CAPTURE, 0); var_dump($matches); ?></pre>
<p>次に、何が必要かを説明する例を示します。 こんな段落があります</p> <ブロック引用> <p>a[link1]、a[link2] a[link3] テキスト テキスト テキスト a[link4] テキスト a[link5] テキスト

</blockquote> <p>この記事には、<code>a[...]</code> で指定されたリンクがあります。将来的には、これらのリンクを置き換えて、次の形式に変更する必要があります: </p> <ブロック引用> <p><a href="link1" class="style1">link1</a><a href="link2" class="style1">link2</a><a href=" link3" class="style1 ">link3</a> テキスト テキスト テキスト<a href="link4" class="style2">link4</a> テキスト<a href="link5" class="style2 "> ;link5</a>テキスト</p> </blockquote> <p>最初の 3 つのリンクされたクラスには、値 <code>style1</code> が割り当てられます。テキストに続くリンクには、すでにクラス値が <code>style2</code> に割り当てられています。 </p> <p>最初は、テキストの前に 3 つのリンク、4 つ、または 1 つのリンクを置くことができ、テキストの後には任意の数のリンクを任意の順序で置くことができます。 </p>
P粉926174288P粉926174288437日前547

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

  • P粉338969567

    P粉3389695672023-09-02 00:53:20

    一度にすべてを一致させようとしないでください。各リンクを個別に照合し、結果を繰り返し処理します。これを行うには、preg_match_all を使用します。すべての一致で置換する場合は、preg_replace_callback を使用します。使用:### リーリー

    は目標を達成するはずです。

    [\s ]? の目的は明確ではありません。スペースまたは を許可するかどうかを選択できます。リンクの後のオプションのカンマとスペースについても不明瞭です。シンプルにしておくことが最善のアプローチです。

    https://3v4l.org/2AvT1

    返事
    0
  • キャンセル返事