tout sauf un caractère avec preg_replace()

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : tout sauf un caractère avec preg_replace()

Re: tout sauf un caractère avec preg_replace()

par two3d » 05 déc. 2021, 06:52

Merci, je vais regarder.

Re: tout sauf un caractère avec preg_replace()

par @rthur » 04 déc. 2021, 23:18

En simplifiant ta regex, j'arrive à ça pour extraire les attributs des balises :
https://regex101.com/r/rrDpJB/1

Re: tout sauf un caractère avec preg_replace()

par two3d » 03 déc. 2021, 23:22

Yes, merci, j'avais déjà vue ce site ya un moment, dans les marques pages !

Oui, je cherche à enlever tout les br qu'il y a entre la fin des balises pre (donc depuis "/pre>") et le début d'une autre (donc à "<pre"), du coup je fais une regex en disant "tout ce qu'il y a entre ces balises", le problème c'est que ça me prenait tout le code qu'il y a dans toutes la chaine, j'ai solutionné ma regex avec ungreedy, le drapeaux U.

Cependant j'ai la même question "tout sauf un caractère avec preg_replace()" pour un problème que je tente de résoudre assez souvent, je me retrouve à vouloir accepter tout sauf un caractère précis mais je ne parviens jamais à le faire, par exemple (c'est en JavaScript pour un projet de coloration syntaxique):
replace(/(<\w+)\s+([^(?:>)].+)(>)/gi,...)
Avec ce code, je souhaite récupérer les balises HTML et capturer l'intérieur de la balises, tous les attributs, par exemple:

<html lang="fr">

récupérer : lang="fr"

Je demande à tout prendre à l'intérieur sauf si c'est la fin de la balise (>) mais il continu ... J'aimerais donc dire : "tout c qu'il ya à l'intérieur, sauf >"

Je my prend mal certainement, existe t'il un ungreedy en JS qui me permettrait, je pense, de m'arrêter à > ?

Re: tout sauf un caractère avec preg_replace()

par @rthur » 03 déc. 2021, 22:41

https://regex101.com/ :arrow: le site magique pour construire et tester ses regex

Après j'ai pas compris ce que tu cherchais à faire ? Supprimer les <br /> et les retours chariot ?

tout sauf un caractère avec preg_replace()

par two3d » 03 déc. 2021, 00:30

Je tente de supprimer du code dans ma chaine, je souhaite que :
$code='...</pre><br />
<br />
<pre>code</pre> autre
ligne
<pre>...';
Devienne :
$code='...</pre><pre>code</pre><pre>...';
Voilà ma regex actuelle :
$code='...</pre><br />
<br />
<pre>code</pre> autre
ligne
<pre>...';
var_dump(preg_replace("#/pre>.+(?!(<pre))<pre#ism","/pre><pre",$code));
J'ai trouvé cet article mais pas très explicite : http://yannesposito.com/Scratch/fr/blog ... egexp--2-/