recherche
Questions et réponses Utilisez des styles partagés pour remplacer les pseudo-balises consécutives par des balises HTML

0
<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>
Your Answer
soumettre

1 réponse
0

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

2023-09-02 00:53:20

soumettre

Hot Tools

Collection de bibliothèques d'exécution vc9-vc14 (32 + 64 bits) (lien ci-dessous)

Collection de bibliothèques d'exécution vc9-vc14 (32 + 64 bits) (lien ci-dessous)

Téléchargez la collection de bibliothèques d'exécution requises pour l'installation de phpStudy

VC9 32 bits

VC9 32 bits

Bibliothèque d'exécution de l'environnement d'installation intégré VC9 32 bits phpstudy

Version complète de la boîte à outils du programmeur PHP

Version complète de la boîte à outils du programmeur PHP

Programmer Toolbox v1.0 Environnement intégré PHP

VC11 32 bits

VC11 32 bits

Bibliothèque d'exécution de l'environnement d'installation intégré VC11 phpstudy 32 bits

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser