|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() |
hello à tous, le gros de mon problème de ce matin étant résolu, il me reste une question...
Comment tester en PCRE "est un guillemet précéder d'un anti-slash ou n'est pas un guillement" ? L'expression: " ((?:(?<=\\)")|[^"])* " ne marche pas :( |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() Inscription : mai 2002 Messages : 673 ![]() |
Houaa ! c'est de l'art une question comme ça !
Bon, si j'ai bien compris, tu veux détecter un \" dans ta chain ? Si c'est le cas, utilise : \\\" Si tu veux détecter un guillement qui n'est PAS précédé d'un antislash, je verais bien un truc comme ça : ?\" |
|
|
00
|
|
|
#3 | |
|
Futur Membre du Club
![]() |
Citation:
mais si j'ai une chaîne: "voilà une chaîne... elle contient une \"citation\", mais cette citation ne dois pas arreter l'analyse!" ben on va me sortire voilà une chaîne... elle contient une \ |
|
|
|
00
|
|
|
#4 |
|
Membre expérimenté
![]() Inscription : mai 2002 Messages : 673 ![]() |
Problème interressant... 9a peut pas marcher avec un truc de ce style :
\"[.\\\".]*?\" (si j'ai bonne mémoire, le point remplace n'importe quel caractere, ce dont apres reflexion je ne suis pas sur pour le ?) Le principe étant de dire qu'on peut trouver autant de \" que l'on veut dans la chaine avant de trouver un " non précédé d'un \ |
|
|
00
|
|
|
#5 | |
|
Futur Membre du Club
![]() |
Citation:
|
|
|
|
00
|
|
|
#6 |
|
Membre expérimenté
![]() Inscription : mai 2002 Messages : 673 ![]() |
c'est juste ! Si j'avais le droit de faire le porc à ta place, je ferais dabord un str_replace() de \" par §, puis la meme chose dans l'autre sens apres mon traitement lol
|
|
|
00
|
|
|
#7 | |
|
Futur Membre du Club
![]() |
Citation:
J'aimerais pas pouvoir garder tout les caractères |
|
|
|
00
|
|
|
#8 |
|
Membre expérimenté
![]() Inscription : mai 2002 Messages : 673 ![]() |
Le § était juste là pour illustrer "l'esprit gros cochon"
Rien ne t'empèche de trouver une combinaison plus compliqué qui sera jamais utilisé, genre -=§¤=- ou un truc vraiment crados comme ça ! Y'a la méthode BBCode aussi, où les gars génèrent un UID : en réalité, a chaque texte est associé un UID généré aléatoirement via substr(md5(microtime()),0,10), et ils stockent ça en BDD comme ça : [B:69762359de]texte en gras[/b:69762359de] Appliqué à ton principe (en sauvegardant l'UID dans une variable le temps de faire ton traitement), ça réduirait à peu près à néant les chances d'erreur : §69762359de§ pour un \" avec un str_replace()... Enfin bon, c'est la méthode dite "du gros porc" (dont j'ai déjà assez abusé aujourd'hui)... Perso, je voit pas de soluce a ton probleme en preg... En dehors des PREG, y'a les grammaires, les automates et les trucs comme ça... |
|
|
00
|
|
|
#9 |
|
Futur Membre du Club
![]() |
Personne ne sais utiliser les assertions ?
J'ai pourtant l'impression que c'est ce qu'îl me faut |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com