REGEX
Résolu
Bonjour,
J'aimerai savoir si c'est possible, dans le cadre d'un replace de rendre des parenthèses non capturante?
merci d'avance
J'aimerai savoir si c'est possible, dans le cadre d'un replace de rendre des parenthèses non capturante?
merci d'avance
A voir également:
- REGEX
- Regex buddy - Télécharger - Édition & Programmation
- Regex ne commence pas par ✓ - Forum Programmation
- Regex mot de passe ✓ - Forum Framework .NET
- Jquery regex ✓ - Forum Javascript
- Regex tabulation ✓ - Forum Programmation
7 réponses
En admettant que le fichier soit bien formé (balises cohérentes) je ferais simplement deux replaces successifs :
- un premier qui transforme tous les [b]
- un second qui transforme tous les [/ b]
Non ?
Bonne chance
- un premier qui transforme tous les [b]
- un second qui transforme tous les [/ b]
Non ?
Bonne chance
Ca dépend de ce que tu utilises pour faire ton expression régulière il y a plusieurs syntaxe (vim, bash, pcre, perl...). Par exemple sous vim elles sont échappées et les parenthèses capturent si elles sont échappées \( \). En bash et en pcre tu peux essayer [(] et [)].
Bonne chance
Bonne chance
J'utilise PCRE,
j'ai testé et comme je l'imaginai ça ne fonctionne pas.
En fait je ne veux pas les échapper seulement utiliser leur autre fonction.
En gros un si pas suivie de ça...
exemple:
/bon(?!jour)/
mais dans un replace
Une autre idée peut être?
j'ai testé et comme je l'imaginai ça ne fonctionne pas.
En fait je ne veux pas les échapper seulement utiliser leur autre fonction.
En gros un si pas suivie de ça...
exemple:
/bon(?!jour)/
mais dans un replace
Une autre idée peut être?
Désolée mais je n'ai pas compris. Donne moi un exemple de ce que tu veux catcher et un exemple de ce que tu ne veux pas catcher.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
une exemple de bbcode si tu veux
Prévisualisation en js
Alors ça marche mais le soucis c'est quand tu as deux fois la même balise
exemple:
là il y as soucis puisque tu te retrouve avec:
Donc en fait je voudrais faire quelque chose comme çà:
Pour qu'il n'agisse couple par couple de balise identique, mais bien sûr dans le cas d'un replace les parenthèses sont capturantes donc ça ne fonctionne pas...
Voilà j'espère que c'est assez clair
Prévisualisation en js
resultat.replace(/\[b\](.+)\[\/ b\]/gi, "<span style='font-weight:bold;'>$1</ span>");
Alors ça marche mais le soucis c'est quand tu as deux fois la même balise
exemple:
[b]kkk[/ b] kkkkkkkkk [b]kkk[/ b]
là il y as soucis puisque tu te retrouve avec:
kkk[/ b] kkkkkkkkk [b]kkk
Donc en fait je voudrais faire quelque chose comme çà:
resultat.replace(/\[b\](?!\[b\]\[\/ b\])*\[\/ b\]/gi, "<span style='font-weight:bold;'>$1</span>");
Pour qu'il n'agisse couple par couple de balise identique, mais bien sûr dans le cas d'un replace les parenthèses sont capturantes donc ça ne fonctionne pas...
Voilà j'espère que c'est assez clair