J'ai un problème avec ereg_replace
en gros je veux remplacé dans une string tous les ' qui ne sont pas suivit
par des " par \'
L'expression régulière donnerai : '(?|")
donc je fait
$result=ereg("\'(?|\")", "\'", $origin);
J'obtiens l'erreur :
Delimiter must not be alphanumeric or backslash
donc j'écris
$result=ereg("/\'(?|\")/", "\'", $origin);
et j'ai le résultat suivant :
Compilation failed: unrecognized character after (? at offset 4
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
tyoup
Baptiste wrote:
J'ai un problème avec ereg_replace en gros je veux remplacé dans une string tous les ' qui ne sont pas suivit par des " par ' L'expression régulière donnerai : '(?|") donc je fait $result=ereg("'(?|")", "'", $origin); J'obtiens l'erreur : Delimiter must not be alphanumeric or backslash donc j'écris $result=ereg("/'(?|")/", "'", $origin); et j'ai le résultat suivant : Compilation failed: unrecognized character after (? at offset 4
Si quelqu'un à une idée merci d'avance
ereg_replace ? ereg ? preg_replace ?
$result = preg_replace("/'(?!")/", "'", $origin);
voilà ...
-- Tyoup
Baptiste wrote:
J'ai un problème avec ereg_replace
en gros je veux remplacé dans une string tous les ' qui ne sont pas suivit
par des " par '
L'expression régulière donnerai : '(?|")
donc je fait
$result=ereg("'(?|")", "'", $origin);
J'obtiens l'erreur :
Delimiter must not be alphanumeric or backslash
donc j'écris
$result=ereg("/'(?|")/", "'", $origin);
et j'ai le résultat suivant :
Compilation failed: unrecognized character after (? at offset 4
J'ai un problème avec ereg_replace en gros je veux remplacé dans une string tous les ' qui ne sont pas suivit par des " par ' L'expression régulière donnerai : '(?|") donc je fait $result=ereg("'(?|")", "'", $origin); J'obtiens l'erreur : Delimiter must not be alphanumeric or backslash donc j'écris $result=ereg("/'(?|")/", "'", $origin); et j'ai le résultat suivant : Compilation failed: unrecognized character after (? at offset 4
Si quelqu'un à une idée merci d'avance
ereg_replace ? ereg ? preg_replace ?
$result = preg_replace("/'(?!")/", "'", $origin);
voilà ...
-- Tyoup
Christophe PEREZ
Le Wed, 03 Mar 2004 09:42:13 +0000, Baptiste a écrit:
J'ai un problème avec ereg_replace en gros je veux remplacé dans une string tous les ' qui ne sont pas suivit par des " par '
clair.
L'expression régulière donnerai : '(?|")
??? Pour moi c'est '[^"] l'expression qui matche.
donc je fait $result=ereg("'(?|")", "'", $origin);
tu parles de ereg_replace et tu utilises ereg.
Et pourquoi échapper l'apostrophe ?
J'obtiens l'erreur : Delimiter must not be alphanumeric or backslash donc j'écris $result=ereg("/'(?|")/", "'", $origin);
Ne correspond pas à la syntaxe ereg_replace mais à preg_replace.
et j'ai le résultat suivant : Compilation failed: unrecognized character after (? at offset 4
Il le dit, c'est le "|" qu'il n'aime pas (il dit bien après "(?") C'est là qu'il faudrait échapper ;-)
Si quelqu'un à une idée
Avec ton expression régulière non, parce que je ne la comprends pas. Mais si elle est valide et que quelqu'un veut bien me l'expliquer, je suis à l'écoute.
Moi, j'aurais fait ça : preg_replace("/'([^"])/","'$1",$chaine);
merci d'avance
Je t'en prie.
-- Christophe PEREZ Écrivez moi sans _faute !
Le Wed, 03 Mar 2004 09:42:13 +0000, Baptiste a écrit:
J'ai un problème avec ereg_replace
en gros je veux remplacé dans une string tous les ' qui ne sont pas suivit
par des " par '
clair.
L'expression régulière donnerai : '(?|")
???
Pour moi c'est '[^"] l'expression qui matche.
donc je fait
$result=ereg("'(?|")", "'", $origin);
tu parles de ereg_replace et tu utilises ereg.
Et pourquoi échapper l'apostrophe ?
J'obtiens l'erreur :
Delimiter must not be alphanumeric or backslash
donc j'écris
$result=ereg("/'(?|")/", "'", $origin);
Ne correspond pas à la syntaxe ereg_replace mais à preg_replace.
et j'ai le résultat suivant :
Compilation failed: unrecognized character after (? at offset 4
Il le dit, c'est le "|" qu'il n'aime pas (il dit bien après "(?")
C'est là qu'il faudrait échapper ;-)
Si quelqu'un à une idée
Avec ton expression régulière non, parce que je ne la comprends pas.
Mais si elle est valide et que quelqu'un veut bien me l'expliquer, je
suis à l'écoute.
Moi, j'aurais fait ça :
preg_replace("/'([^"])/","'$1",$chaine);
Le Wed, 03 Mar 2004 09:42:13 +0000, Baptiste a écrit:
J'ai un problème avec ereg_replace en gros je veux remplacé dans une string tous les ' qui ne sont pas suivit par des " par '
clair.
L'expression régulière donnerai : '(?|")
??? Pour moi c'est '[^"] l'expression qui matche.
donc je fait $result=ereg("'(?|")", "'", $origin);
tu parles de ereg_replace et tu utilises ereg.
Et pourquoi échapper l'apostrophe ?
J'obtiens l'erreur : Delimiter must not be alphanumeric or backslash donc j'écris $result=ereg("/'(?|")/", "'", $origin);
Ne correspond pas à la syntaxe ereg_replace mais à preg_replace.
et j'ai le résultat suivant : Compilation failed: unrecognized character after (? at offset 4
Il le dit, c'est le "|" qu'il n'aime pas (il dit bien après "(?") C'est là qu'il faudrait échapper ;-)
Si quelqu'un à une idée
Avec ton expression régulière non, parce que je ne la comprends pas. Mais si elle est valide et que quelqu'un veut bien me l'expliquer, je suis à l'écoute.
Moi, j'aurais fait ça : preg_replace("/'([^"])/","'$1",$chaine);
merci d'avance
Je t'en prie.
-- Christophe PEREZ Écrivez moi sans _faute !
tyoup
L'expression régulière donnerai : '(?|")
??? Pour moi c'est '[^"] l'expression qui matche.
pour moi c'est '([^"]|$) ... ;-)
Avec ton expression régulière non, parce que je ne la comprends pas. Mais si elle est valide et que quelqu'un veut bien me l'expliquer, je suis à l'écoute.
c'est '(?!") ... il s'agit d'un motif du type (? ... ), ici il s'agit d'une assertion négative (!).
-- Tyoup
L'expression régulière donnerai : '(?|")
???
Pour moi c'est '[^"] l'expression qui matche.
pour moi c'est '([^"]|$) ... ;-)
Avec ton expression régulière non, parce que je ne la comprends pas.
Mais si elle est valide et que quelqu'un veut bien me l'expliquer, je
suis à l'écoute.
c'est '(?!") ... il s'agit d'un motif du type (? ... ), ici il s'agit
d'une assertion négative (!).
Avec ton expression régulière non, parce que je ne la comprends pas. Mais si elle est valide et que quelqu'un veut bien me l'expliquer, je suis à l'écoute.
c'est '(?!") ... il s'agit d'un motif du type (? ... ), ici il s'agit d'une assertion négative (!).
-- Tyoup
Christophe PEREZ
Le Thu, 04 Mar 2004 17:21:43 +0000, tyoup a écrit:
pour moi c'est '([^"]|$) ... ;-)
Oui, si on veut, mais je disais "qui matche" donc je ne capturais pas (encore).
c'est '(?!") ... il s'agit d'un motif du type (? ... ), ici il s'agit d'une assertion négative (!).
Ah ben là, j'ai encore appris quelque chose... Du coup, j'ai voulu revoir certaines de mes expressions pour tenter d'optimiser. Et je me rends compte qu'il y a quelque chose (entre autres) que je ne parviens pas à faire.
A) Je voudrais, dans une chaîne pouvant contenir des sauts de ligne, remplacer tous ces sauts de lignes, sauf ceux compris dans une balise textarea, donc ne pas remplacer les n qui sont dans : <textarea[^>]*>.*</textarea> Or, je n'y parviens pas.
B) Je me suis dit que, pour palier à ça, j'allais : 1) remplacer dans <textarea[^>]*>.*</textarea>, tous les sauts de ligne par un chaine improbable ailleurs SAUT_DE_LIGNE_TEXTAREA 2) remplacer tous les sauts de ligne par la valeur que je souhaite 3) remplacer tous les SAUT_DE_LIGNE_TEXTAREA par des sauts de ligne.
Je sais faire les 2) et 3), mais le 1) reste toujours un problème pour moi. si quelqu'un pouvait m'aiguiller, ça me rendrait bien service, sachant toutefois que la problématique reste celle du A) et que le B) ne serait qu'un paliatif si le A) n'est pas faisable directement.
Merci d'avance.
-- Christophe PEREZ Écrivez moi sans _faute !
Le Thu, 04 Mar 2004 17:21:43 +0000, tyoup a écrit:
pour moi c'est '([^"]|$) ... ;-)
Oui, si on veut, mais je disais "qui matche" donc je ne capturais pas
(encore).
c'est '(?!") ... il s'agit d'un motif du type (? ... ), ici il s'agit
d'une assertion négative (!).
Ah ben là, j'ai encore appris quelque chose...
Du coup, j'ai voulu revoir certaines de mes expressions pour tenter
d'optimiser.
Et je me rends compte qu'il y a quelque chose (entre autres) que je ne
parviens pas à faire.
A) Je voudrais, dans une chaîne pouvant contenir des sauts de ligne,
remplacer tous ces sauts de lignes, sauf ceux compris dans une balise
textarea, donc ne pas remplacer les n qui sont dans :
<textarea[^>]*>.*</textarea>
Or, je n'y parviens pas.
B) Je me suis dit que, pour palier à ça, j'allais :
1) remplacer dans <textarea[^>]*>.*</textarea>, tous les sauts de ligne
par un chaine improbable ailleurs SAUT_DE_LIGNE_TEXTAREA
2) remplacer tous les sauts de ligne par la valeur que je souhaite
3) remplacer tous les SAUT_DE_LIGNE_TEXTAREA par des sauts de ligne.
Je sais faire les 2) et 3), mais le 1) reste toujours un problème pour
moi.
si quelqu'un pouvait m'aiguiller, ça me rendrait bien service, sachant
toutefois que la problématique reste celle du A) et que le B) ne serait
qu'un paliatif si le A) n'est pas faisable directement.
Le Thu, 04 Mar 2004 17:21:43 +0000, tyoup a écrit:
pour moi c'est '([^"]|$) ... ;-)
Oui, si on veut, mais je disais "qui matche" donc je ne capturais pas (encore).
c'est '(?!") ... il s'agit d'un motif du type (? ... ), ici il s'agit d'une assertion négative (!).
Ah ben là, j'ai encore appris quelque chose... Du coup, j'ai voulu revoir certaines de mes expressions pour tenter d'optimiser. Et je me rends compte qu'il y a quelque chose (entre autres) que je ne parviens pas à faire.
A) Je voudrais, dans une chaîne pouvant contenir des sauts de ligne, remplacer tous ces sauts de lignes, sauf ceux compris dans une balise textarea, donc ne pas remplacer les n qui sont dans : <textarea[^>]*>.*</textarea> Or, je n'y parviens pas.
B) Je me suis dit que, pour palier à ça, j'allais : 1) remplacer dans <textarea[^>]*>.*</textarea>, tous les sauts de ligne par un chaine improbable ailleurs SAUT_DE_LIGNE_TEXTAREA 2) remplacer tous les sauts de ligne par la valeur que je souhaite 3) remplacer tous les SAUT_DE_LIGNE_TEXTAREA par des sauts de ligne.
Je sais faire les 2) et 3), mais le 1) reste toujours un problème pour moi. si quelqu'un pouvait m'aiguiller, ça me rendrait bien service, sachant toutefois que la problématique reste celle du A) et que le B) ne serait qu'un paliatif si le A) n'est pas faisable directement.