Maison  >  Questions et réponses  >  le corps du texte

Utilisez des styles partagés pour remplacer les pseudo-balises consécutives par des balises HTML

<p>J'ai cette ligne</p> <pre class="brush:php;toolbar:false;">a[lien], a[lien] un [lien] texte texte texte un [lien] texte a[lien] texte</pre> <p>Je veux donc trouver le premier lien avant le texte et effectuer une opération dessus et le mettre en surbrillance dans un style spécial (dans ce cas, peut-être plus ou moins trois) et trouver les autres liens après le texte Texte et surligner eux dans des styles différents. </p> <p>Je n'ai trouvé que les trois premiers liens, mais je ne sais pas si j'ai bien fait</p> <pre class="brush:php;toolbar:false;"><?php $re = '/^(a[(w+[s+]?)+],?s?)+/iu'; $str = 'un[lien], un[lien] un[lien] texte texte texte a[lien] texte a[lien] texte'; preg_match($re, $str, $matches, PREG_OFFSET_CAPTURE, 0); var_dump ($ correspond); ?>≪/pré> <heure /> <p>Je vais maintenant essayer de donner un exemple illustratif de ce qui est requis : Il existe un tel paragraphe</p> <blockquote> <p>a[link1], a[link2] a[link3] texte texte texte a[link4] texte a[link5] texte</p> </blockquote> <p>Dans cet article, il existe des liens désignés <code>a[...]</code>. À l'avenir, je devrai remplacer ces liens et les remplacer par ce formulaire : </p> <blockquote> <p><a href="link1" class="style1">link1</a><a href="link2" class="style1">link2</a><a href=" link3" class="style1 ">link3</a> texte texte texte<a href="link4" class="style2">link4</a> texte<a href="link5" class="style2 "> ;lien5</a> texte</ p> </blockquote> <p>Les trois premières classes liées reçoivent la valeur <code>style1</code>. Le lien qui suit le texte a déjà une valeur de classe attribuée à <code>style2</code>. </p> <p>Au départ, il peut y avoir trois liens devant le texte, quatre ou même un, et il peut y avoir n'importe quel nombre de liens dans n'importe quel ordre après le texte. </p>
P粉926174288P粉926174288436 Il y a quelques jours546

répondre à tous(1)je répondrai

  • P粉338969567

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

    N’essayez pas de tout faire correspondre en même temps. Faites correspondre chaque lien individuellement, puis parcourez les résultats. Pour ce faire, utilisez preg_match_all ;如果您想在每次匹配时进行替换,请使用 preg_replace_callback . Utilisation :

    a\[(\w+)\]

    Vous devriez atteindre vos objectifs.

    Pas encore clair [s+]? 的目标是什么,可以选择允许空格或 +. Pas clair non plus sur la virgule et l'espace facultatifs après le lien. Garder les choses simples est la meilleure approche.

    https://3v4l.org/2AvT1

    répondre
    0
  • Annulerrépondre