Quelle regex pour remplacer chaîne de caractères suivante...
Angy
-
Angy -
Angy -
Bonjour,
Je débute en regex et j'ai vraiment du mal à venir à bout de l'instruction suivante : je cherche à remplacer par "TEXT" toute chaîne de caractères entre ">" et "<", à condition que cette chaîne ne contienne pas elle-même ">" ou "<"...
Exemple :
"<truc> bidule <machin>" devient "<truc>TEXT<machin>"
"<truc> <chose> <machin>" devient"<truc>TEXT<chose>TEXT<machin>"
J'ai tenté timidement et en vain la chose suivante :
chaineAEpurer.replace(/>#.*[^<>]#</i, ">TEXT<");
Mais je dois comprendre pas mal de choses de travers : /
Merci par avance d'éclairer ma lanterne :)
Je débute en regex et j'ai vraiment du mal à venir à bout de l'instruction suivante : je cherche à remplacer par "TEXT" toute chaîne de caractères entre ">" et "<", à condition que cette chaîne ne contienne pas elle-même ">" ou "<"...
Exemple :
"<truc> bidule <machin>" devient "<truc>TEXT<machin>"
"<truc> <chose> <machin>" devient"<truc>TEXT<chose>TEXT<machin>"
J'ai tenté timidement et en vain la chose suivante :
chaineAEpurer.replace(/>#.*[^<>]#</i, ">TEXT<");
Mais je dois comprendre pas mal de choses de travers : /
Merci par avance d'éclairer ma lanterne :)
A voir également:
- Quelle regex pour remplacer chaîne de caractères suivante...
- Quelle site remplace coco - Accueil - Réseaux sociaux
- Remplacer disque dur par ssd - Guide
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
1 réponse
Je ne sais pas si ça pourrais t'être utile mais moi j'ai une fonction qui permet de remplacé toute les occurrences de caractères spéciaux.
Je t'en fait part :)
Je t'en fait part :)
function suppr_accents($str, $encoding='utf-8')
{
// transformer les caractères accentués en entités HTML
$str = htmlentities($str, ENT_NOQUOTES, $encoding);
// remplacer les entités HTML pour avoir juste le premier caractères non accentués
// Exemple : "&ecute;" => "e", "&Ecute;" => "E", "Ã " => "a" ...
$str = preg_replace('#&([A-za-z])(?:acute|grave|cedil|circ|orn|ring|slash|th|tilde|uml);#', '\1', $str);
// Remplacer les ligatures tel que : OE, Æ ...
// Exemple "Å"" => "oe"
$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str);
// Supprimer tout le reste
$str = preg_replace('#&[^;]+;#', '', $str);
return $str;
}
Mais merci pour ta contribution VlkPr3s :)
En fait ce qui me pose le plus problème c'est comment définir en regex la condition "à condition que cette chaîne ne contienne pas elle-même ">" ou "<" " : /