[spip-dev] info sur regex de inc/quote_amp()

Bonjour,

Je suis en train de faire une documentation pour moi détaillée de ecrire/inc/utils.php
L’objectif étant de:
comprendre spip en détail en approfondissant ma connaissance de php.

Après l’intro, la question:
(pour un spip1-9-2)
puis-je interpréter la regex de function quote_amp($u)
“/&(?![a-z]{0,4}\w{2,3};|#x?[0-9a-f]{2,5};)/i”,

comme suit:
&:caractère &
(?!:suivi de ce qui n’est pas (test avant négatif):
[a-z]{0,4}: 0 à 4 caractère(s) alphabétique(s) minuscules(s), suivi de:
\w{2,3} : 2 ou 3 mots suivi de:
; un point-virgule
OU

Désolé pour l'interuuption

Bonjour,

Je suis en train de faire une documentation pour moi détaillée de
ecrire/inc/utils.php
L'objectif étant de:
comprendre spip en détail en approfondissant ma connaissance de php.

Après l'intro, la question:
(pour un spip1-9-2)
puis-je interpréter la regex de function quote_amp($u)
"/&(?![a-z]{0,4}\w{2,3};|#x?[0-9a-f]{2,5};)/i",

comme suit:

&:caractère &
(?!:suivi de ce qui n'est pas (test avant négatif):
     [a-z]{0,4}: 0 à 4 caractère(s) alphabétique(s) minuscules(s), suivi de:
     \w{2,3} : 2 ou 3 mots suivi de:
     ; un point-virgule
OU
    # ; un dièze suivi de:
    x?: caractère facultatif x suivi de:
    [0-9a-f]{2,5}: 2 à 5 caractères hexadécimaux
    ; un point-virgule
) fin du test avant négatif

Cette regex ne peut-elle être simplifiée ou suis-je naïf?
str_replace("/&(?!amp;)/","&",$u);

Et alors pourquoi serais-je naïf?
Merci.