Je ne sais pas si ce problème des simples quotes, concerne aussi les
regexp PCRE de PHP.
Merci beaucoup de me dire si c'est réellement possible de mettre des
simples quotes ( et comment ) entre des simples quotes, dans une regexp
PCRE en PHP. ( Que ce soit dans ou hors d'une classe ).
Le PHP Manual a changé récemment, est beaucoup moins clair et détaillé.
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
Olivier Miakinen
Bonjour,
Le 05/03/2014 11:59, Jean Francois Ortolo a écrit :
Bonjour
Je n'ai pas encore essayé en langage PHP, les regxep suivantes, qui donnent une erreur :
cat tmp100.txt | egrep -e '''
Tu as donc testé l'interprétation du shell plutôt que celle de PHP ou de PCRE.
Dans bash, « echo ''' » donne le même comportement que ta commande : il attend la suite.
Erreur quel que soit le nombre de dans la regexp.
Par contre tout ceci fonctionne :
cat tmp100.txt | egrep -e "'"
echo "'" -> '
cat tmp100.txt | egrep -e "'"
echo "'" -> '
cat tmp100.txt | egrep -e """
echo """ -> "
cat tmp100.txt | egrep -e """
Tu es sûr de toi ?
cat tmp100.txt | egrep -e """
echo """ -> "
cat tmp100.txt | egrep -e "'"
echo "'" -> '
Tu peux aussi essayer : cat tmp100.txt | egrep -e '
sachant que : echo ' -> '
Je ne sais pas si ce problème des simples quotes, concerne aussi les regexp PCRE de PHP.
Encore une fois, tu n'as en rien testé PCRE, juste le shell.
Merci beaucoup de me dire si c'est réellement possible de mettre des simples quotes ( et comment ) entre des simples quotes, dans une regexp PCRE en PHP. ( Que ce soit dans ou hors d'une classe ).
Dans une regexp PCRE, tout simplement : /'/
Le fait que tu dises « entre des simples quotes » signifie probablement que tu te préoccupes de la syntaxe des chaînes de caractères en PHP : <http://fr2.php.net/manual/fr/language.types.string.php#language.types.string.syntax.single>.
Par exemple : '/'/' (le est requis non pas par PCRE mais par la syntaxe des chaînes en PHP).
Cordialement, -- Olivier Miakinen
Bonjour,
Le 05/03/2014 11:59, Jean Francois Ortolo a écrit :
Bonjour
Je n'ai pas encore essayé en langage PHP, les regxep suivantes, qui
donnent une erreur :
cat tmp100.txt | egrep -e '''
Tu as donc testé l'interprétation du shell plutôt que celle de PHP ou
de PCRE.
Dans bash, « echo ''' » donne le même comportement que ta commande :
il attend la suite.
Erreur quel que soit le nombre de dans la regexp.
Par contre tout ceci fonctionne :
cat tmp100.txt | egrep -e "'"
echo "'" -> '
cat tmp100.txt | egrep -e "'"
echo "'" -> '
cat tmp100.txt | egrep -e """
echo """ -> "
cat tmp100.txt | egrep -e "\""
Tu es sûr de toi ?
cat tmp100.txt | egrep -e "\""
echo "\"" -> "
cat tmp100.txt | egrep -e "\'"
echo "\'" -> '
Tu peux aussi essayer :
cat tmp100.txt | egrep -e '
sachant que :
echo ' -> '
Je ne sais pas si ce problème des simples quotes, concerne aussi les
regexp PCRE de PHP.
Encore une fois, tu n'as en rien testé PCRE, juste le shell.
Merci beaucoup de me dire si c'est réellement possible de mettre des
simples quotes ( et comment ) entre des simples quotes, dans une regexp
PCRE en PHP. ( Que ce soit dans ou hors d'une classe ).
Dans une regexp PCRE, tout simplement : /'/
Le fait que tu dises « entre des simples quotes » signifie probablement
que tu te préoccupes de la syntaxe des chaînes de caractères en PHP :
<http://fr2.php.net/manual/fr/language.types.string.php#language.types.string.syntax.single>.
Par exemple : '/'/' (le est requis non pas par PCRE mais par la
syntaxe des chaînes en PHP).
Le 05/03/2014 11:59, Jean Francois Ortolo a écrit :
Bonjour
Je n'ai pas encore essayé en langage PHP, les regxep suivantes, qui donnent une erreur :
cat tmp100.txt | egrep -e '''
Tu as donc testé l'interprétation du shell plutôt que celle de PHP ou de PCRE.
Dans bash, « echo ''' » donne le même comportement que ta commande : il attend la suite.
Erreur quel que soit le nombre de dans la regexp.
Par contre tout ceci fonctionne :
cat tmp100.txt | egrep -e "'"
echo "'" -> '
cat tmp100.txt | egrep -e "'"
echo "'" -> '
cat tmp100.txt | egrep -e """
echo """ -> "
cat tmp100.txt | egrep -e """
Tu es sûr de toi ?
cat tmp100.txt | egrep -e """
echo """ -> "
cat tmp100.txt | egrep -e "'"
echo "'" -> '
Tu peux aussi essayer : cat tmp100.txt | egrep -e '
sachant que : echo ' -> '
Je ne sais pas si ce problème des simples quotes, concerne aussi les regexp PCRE de PHP.
Encore une fois, tu n'as en rien testé PCRE, juste le shell.
Merci beaucoup de me dire si c'est réellement possible de mettre des simples quotes ( et comment ) entre des simples quotes, dans une regexp PCRE en PHP. ( Que ce soit dans ou hors d'une classe ).
Dans une regexp PCRE, tout simplement : /'/
Le fait que tu dises « entre des simples quotes » signifie probablement que tu te préoccupes de la syntaxe des chaînes de caractères en PHP : <http://fr2.php.net/manual/fr/language.types.string.php#language.types.string.syntax.single>.
Par exemple : '/'/' (le est requis non pas par PCRE mais par la syntaxe des chaînes en PHP).
Cordialement, -- Olivier Miakinen
Olivier Miakinen
Le 05/03/2014 14:40, je répondais à Jean-François Ortolo :
cat tmp100.txt | egrep -e '''
Tu as donc testé l'interprétation du shell plutôt que celle de PHP ou de PCRE.
Dans bash, « echo ''' » donne le même comportement que ta commande : il attend la suite.
<http://manpagesfr.free.fr/man/man1/bash.1.html> Encadrer des caractères entre des apostrophes simples préserve la valeur littérale de chacun des caractères. Une apostrophe ne peut pas être placée entre deux apostrophes, même si elle est précédée d'une barre oblique inverse. </>
Cordialement, -- Olivier Miakinen
Le 05/03/2014 14:40, je répondais à Jean-François Ortolo :
cat tmp100.txt | egrep -e '''
Tu as donc testé l'interprétation du shell plutôt que celle de PHP ou
de PCRE.
Dans bash, « echo ''' » donne le même comportement que ta commande :
il attend la suite.
<http://manpagesfr.free.fr/man/man1/bash.1.html>
Encadrer des caractères entre des apostrophes simples préserve la valeur
littérale de chacun des caractères. Une apostrophe ne peut pas être
placée entre deux apostrophes, même si elle est précédée d'une barre
oblique inverse.
</>
Le 05/03/2014 14:40, je répondais à Jean-François Ortolo :
cat tmp100.txt | egrep -e '''
Tu as donc testé l'interprétation du shell plutôt que celle de PHP ou de PCRE.
Dans bash, « echo ''' » donne le même comportement que ta commande : il attend la suite.
<http://manpagesfr.free.fr/man/man1/bash.1.html> Encadrer des caractères entre des apostrophes simples préserve la valeur littérale de chacun des caractères. Une apostrophe ne peut pas être placée entre deux apostrophes, même si elle est précédée d'une barre oblique inverse. </>
Cordialement, -- Olivier Miakinen
Jean Francois Ortolo
Le 05/03/2014 16:13, Olivier Miakinen a écrit :
Le 05/03/2014 14:40, je répondais à Jean-François Ortolo :
cat tmp100.txt | egrep -e '''
Tu as donc testé l'interprétation du shell plutôt que celle de PHP ou de PCRE.
Dans bash, « echo ''' » donne le même comportement que ta commande : il attend la suite.
<http://manpagesfr.free.fr/man/man1/bash.1.html> Encadrer des caractères entre des apostrophes simples préserve la valeur littérale de chacun des caractères. Une apostrophe ne peut pas être placée entre deux apostrophes, même si elle est précédée d'une barre oblique inverse. </>
Cordialement,
Bonjour Monsieur
Super merci pour votre réponse.
Vous êtes une référence dans ce newsgroup, en matière de programmation PHP. ;)
Je suis en train actuellement, de migrer le site www.lescourses.com , pour qu'il soit transféré vers un nouveau serveur plus récent ( OVH dédié aussi ).
Actuellement, j'ai adapté toutes les regexp de POSIX vers PCRE, et les instructions MySQL de type : mysql_*() , vers leur équivalent de la classe PDO.
Pour faire la translation des instructions, j'ai utilisé deux scripts Awk de ma fabrication ;) , plus quelques scripts récursifs en Bourne Shell.
Ensuite, je dois corriger chacune des regexp en erreur.
Pour celà, j'ai fait un script php lisant le script en paramètre, et évaluant la valeur réelle des regexp rencontrées, ( même contenant des variables ), en évaluant aussi les variables affectées rencontrées.
Ce script php a été lancé dans toute l'arborescence à vérifier.
J'ai obtenu un fichier texte d'environ 8392 lignes ( autant de regexp ), avec dans chaque ligne :
Il y a quelques jours, j'ai nettoyé ce fichier ( une copie ) de toutes ses regexp valides, et il reste environ 350 regexp ( 350 lignes ) théoriquement douteuses ou non valides, et j'ai commencé aussi il quelques jours, à arranger les regexp dans les scripts ( php ).
J"ai regardé dans différents sites sur les regexp PCRE et PHP, et votre information est pratiquement la dernière info dont j'avais besoin pour terminer le boulot. ;)
Après avoir corrigé théoriquement toutes les regexp, je devrai tester le site sur mon ordinateur( sous le répertoire /php6/ ), puis sur le site en réel ( idem ), puis sur mon ordinateur ( à la racine ), puis sur le site/ancien serveur en réel ( à la racine aussi ), tout en demandant au Directeur de mon site partenaire de vérifier aussi
Pour l'instant je suis à la fin de la phase 1 ( vérification des regexp ), et il y a donc 5 phases.
Votre réponse me permet de faire ces manipulations, avec suffisamment de certitude que les regexp seront valides quelles que que soient les modalités d'exécution des scripts du site.
Je suis sur ce boulot depuis quelques semaines. ;)
Merci beaucoup.
Jean François Ortolo
Le 05/03/2014 16:13, Olivier Miakinen a écrit :
Le 05/03/2014 14:40, je répondais à Jean-François Ortolo :
cat tmp100.txt | egrep -e '''
Tu as donc testé l'interprétation du shell plutôt que celle de PHP ou
de PCRE.
Dans bash, « echo ''' » donne le même comportement que ta commande :
il attend la suite.
<http://manpagesfr.free.fr/man/man1/bash.1.html>
Encadrer des caractères entre des apostrophes simples préserve la valeur
littérale de chacun des caractères. Une apostrophe ne peut pas être
placée entre deux apostrophes, même si elle est précédée d'une barre
oblique inverse.
</>
Cordialement,
Bonjour Monsieur
Super merci pour votre réponse.
Vous êtes une référence dans ce newsgroup, en matière de
programmation PHP. ;)
Je suis en train actuellement, de migrer le site www.lescourses.com ,
pour qu'il soit transféré vers un nouveau serveur plus récent ( OVH
dédié aussi ).
Actuellement, j'ai adapté toutes les regexp de POSIX vers PCRE, et
les instructions MySQL de type : mysql_*() , vers leur équivalent de la
classe PDO.
Pour faire la translation des instructions, j'ai utilisé deux scripts
Awk de ma fabrication ;) , plus quelques scripts récursifs en Bourne Shell.
Ensuite, je dois corriger chacune des regexp en erreur.
Pour celà, j'ai fait un script php lisant le script en paramètre, et
évaluant la valeur réelle des regexp rencontrées, ( même contenant des
variables ), en évaluant aussi les variables affectées rencontrées.
Ce script php a été lancé dans toute l'arborescence à vérifier.
J'ai obtenu un fichier texte d'environ 8392 lignes ( autant de
regexp ), avec dans chaque ligne :
Il y a quelques jours, j'ai nettoyé ce fichier ( une copie ) de
toutes ses regexp valides, et il reste environ 350 regexp ( 350 lignes )
théoriquement douteuses ou non valides, et j'ai commencé aussi il
quelques jours, à arranger les regexp dans les scripts ( php ).
J"ai regardé dans différents sites sur les regexp PCRE et PHP, et
votre information est pratiquement la dernière info dont j'avais besoin
pour terminer le boulot. ;)
Après avoir corrigé théoriquement toutes les regexp, je devrai tester
le site sur mon ordinateur( sous le répertoire /php6/ ), puis sur le
site en réel ( idem ), puis sur mon ordinateur ( à la racine ), puis sur
le site/ancien serveur en réel ( à la racine aussi ), tout en demandant
au Directeur de mon site partenaire de vérifier aussi
Pour l'instant je suis à la fin de la phase 1 ( vérification des
regexp ), et il y a donc 5 phases.
Votre réponse me permet de faire ces manipulations, avec suffisamment
de certitude que les regexp seront valides quelles que que soient les
modalités d'exécution des scripts du site.
Je suis sur ce boulot depuis quelques semaines. ;)
Le 05/03/2014 14:40, je répondais à Jean-François Ortolo :
cat tmp100.txt | egrep -e '''
Tu as donc testé l'interprétation du shell plutôt que celle de PHP ou de PCRE.
Dans bash, « echo ''' » donne le même comportement que ta commande : il attend la suite.
<http://manpagesfr.free.fr/man/man1/bash.1.html> Encadrer des caractères entre des apostrophes simples préserve la valeur littérale de chacun des caractères. Une apostrophe ne peut pas être placée entre deux apostrophes, même si elle est précédée d'une barre oblique inverse. </>
Cordialement,
Bonjour Monsieur
Super merci pour votre réponse.
Vous êtes une référence dans ce newsgroup, en matière de programmation PHP. ;)
Je suis en train actuellement, de migrer le site www.lescourses.com , pour qu'il soit transféré vers un nouveau serveur plus récent ( OVH dédié aussi ).
Actuellement, j'ai adapté toutes les regexp de POSIX vers PCRE, et les instructions MySQL de type : mysql_*() , vers leur équivalent de la classe PDO.
Pour faire la translation des instructions, j'ai utilisé deux scripts Awk de ma fabrication ;) , plus quelques scripts récursifs en Bourne Shell.
Ensuite, je dois corriger chacune des regexp en erreur.
Pour celà, j'ai fait un script php lisant le script en paramètre, et évaluant la valeur réelle des regexp rencontrées, ( même contenant des variables ), en évaluant aussi les variables affectées rencontrées.
Ce script php a été lancé dans toute l'arborescence à vérifier.
J'ai obtenu un fichier texte d'environ 8392 lignes ( autant de regexp ), avec dans chaque ligne :
Il y a quelques jours, j'ai nettoyé ce fichier ( une copie ) de toutes ses regexp valides, et il reste environ 350 regexp ( 350 lignes ) théoriquement douteuses ou non valides, et j'ai commencé aussi il quelques jours, à arranger les regexp dans les scripts ( php ).
J"ai regardé dans différents sites sur les regexp PCRE et PHP, et votre information est pratiquement la dernière info dont j'avais besoin pour terminer le boulot. ;)
Après avoir corrigé théoriquement toutes les regexp, je devrai tester le site sur mon ordinateur( sous le répertoire /php6/ ), puis sur le site en réel ( idem ), puis sur mon ordinateur ( à la racine ), puis sur le site/ancien serveur en réel ( à la racine aussi ), tout en demandant au Directeur de mon site partenaire de vérifier aussi
Pour l'instant je suis à la fin de la phase 1 ( vérification des regexp ), et il y a donc 5 phases.
Votre réponse me permet de faire ces manipulations, avec suffisamment de certitude que les regexp seront valides quelles que que soient les modalités d'exécution des scripts du site.
Je suis sur ce boulot depuis quelques semaines. ;)
Merci beaucoup.
Jean François Ortolo
Olivier Miakinen
Le 05/03/2014 17:22, Jean Francois Ortolo a écrit :
Vous êtes une référence dans ce newsgroup, en matière de programmation PHP. ;)
... surtout quand il ne s'agit pas de PHP mais de shell. :-D
Je suis en train actuellement, de migrer [...]
Tous mes v½ux de réussite t'accompagnent. D'ailleurs j'ai plutôt confiance que cela se passera bien, vu le soin que tu prends à chaque étape.
Cordialement, -- Olivier Miakinen
Le 05/03/2014 17:22, Jean Francois Ortolo a écrit :
Vous êtes une référence dans ce newsgroup, en matière de
programmation PHP. ;)
... surtout quand il ne s'agit pas de PHP mais de shell. :-D
Je suis en train actuellement, de migrer [...]
Tous mes v½ux de réussite t'accompagnent. D'ailleurs j'ai plutôt
confiance que cela se passera bien, vu le soin que tu prends à
chaque étape.
Le 05/03/2014 17:22, Jean Francois Ortolo a écrit :
Vous êtes une référence dans ce newsgroup, en matière de programmation PHP. ;)
... surtout quand il ne s'agit pas de PHP mais de shell. :-D
Je suis en train actuellement, de migrer [...]
Tous mes v½ux de réussite t'accompagnent. D'ailleurs j'ai plutôt confiance que cela se passera bien, vu le soin que tu prends à chaque étape.
Cordialement, -- Olivier Miakinen
Jean Francois Ortolo
Le 05/03/2014 20:26, Olivier Miakinen a écrit :
Tous mes v½ux de réussite t'accompagnent. D'ailleurs j'ai plutôt confiance que cela se passera bien, vu le soin que tu prends à chaque étape.
Cordialement,
Bonjour Monsieur
J'ai encore deux questions à poser :
Est-il vrai que l'un ou l'autre de ces caractères,soient des méta-caractères, et aient des statuts spéciaux dans les regexp PCRE ?
- Le deux -points ":"
- Le dièze : "#".
Je sais bien que le dièze "#" peut servir de délimiteurs, et que dans ce cas ( et dans ce cas seulement théoriquement ), il faut l'échapper dans la regexp.
Mais j'ai lu dans un site, que nécessairement, une regexp comportant un dièze,s'arrêtait à ce dièze, sous-entendu même si ce n'est pas le délimiteur ?
Quant au deux-points, je ne vois pas quoi il peut bien servir, si c'est un caractère spécial en PCRE ?
J'ai terminé le nettoyage de mes scripts php, j'ai fait hier soir un script awk, pour détecter les crochets ( [ ou ] ) foireux ( de classe ou non, échappés ou non, etc...
Par exemple, je détecte la suite : [ [ ] , ou : [ ] ] , etc...
Merci beaucoup de votre réponse.
Très respectueusement.
Jean François Ortolo
Le 05/03/2014 20:26, Olivier Miakinen a écrit :
Tous mes v½ux de réussite t'accompagnent. D'ailleurs j'ai plutôt
confiance que cela se passera bien, vu le soin que tu prends à
chaque étape.
Cordialement,
Bonjour Monsieur
J'ai encore deux questions à poser :
Est-il vrai que l'un ou l'autre de ces caractères,soient des
méta-caractères, et aient des statuts spéciaux dans les regexp PCRE ?
- Le deux -points ":"
- Le dièze : "#".
Je sais bien que le dièze "#" peut servir de délimiteurs, et que dans
ce cas ( et dans ce cas seulement théoriquement ), il faut l'échapper
dans la regexp.
Mais j'ai lu dans un site, que nécessairement, une regexp comportant
un dièze,s'arrêtait à ce dièze, sous-entendu même si ce n'est pas le
délimiteur ?
Quant au deux-points, je ne vois pas quoi il peut bien servir, si
c'est un caractère spécial en PCRE ?
J'ai terminé le nettoyage de mes scripts php, j'ai fait hier soir un
script awk, pour détecter les crochets ( [ ou ] ) foireux ( de classe ou
non, échappés ou non, etc...
Par exemple, je détecte la suite : [ [ ] , ou : [ ] ] , etc...
Tous mes v½ux de réussite t'accompagnent. D'ailleurs j'ai plutôt confiance que cela se passera bien, vu le soin que tu prends à chaque étape.
Cordialement,
Bonjour Monsieur
J'ai encore deux questions à poser :
Est-il vrai que l'un ou l'autre de ces caractères,soient des méta-caractères, et aient des statuts spéciaux dans les regexp PCRE ?
- Le deux -points ":"
- Le dièze : "#".
Je sais bien que le dièze "#" peut servir de délimiteurs, et que dans ce cas ( et dans ce cas seulement théoriquement ), il faut l'échapper dans la regexp.
Mais j'ai lu dans un site, que nécessairement, une regexp comportant un dièze,s'arrêtait à ce dièze, sous-entendu même si ce n'est pas le délimiteur ?
Quant au deux-points, je ne vois pas quoi il peut bien servir, si c'est un caractère spécial en PCRE ?
J'ai terminé le nettoyage de mes scripts php, j'ai fait hier soir un script awk, pour détecter les crochets ( [ ou ] ) foireux ( de classe ou non, échappés ou non, etc...
Par exemple, je détecte la suite : [ [ ] , ou : [ ] ] , etc...
Merci beaucoup de votre réponse.
Très respectueusement.
Jean François Ortolo
Olivier Miakinen
Bonjour,
Le 06/03/2014 08:48, Jean Francois Ortolo a écrit :
J'ai encore deux questions à poser :
Est-il vrai que l'un ou l'autre de ces caractères,soient des méta-caractères, et aient des statuts spéciaux dans les regexp PCRE ?
- Le deux -points ":"
- Le dièze : "#".
Non, c'est faux. Ni l'un ni l'autre ne sont des méta-caractères, et ce aussi bien dans ou hors des classes de caractères (entre crochets) : <http://fr2.php.net/manual/fr/regexp.reference.meta.php>.
Je sais bien que le dièze "#" peut servir de délimiteurs, et que dans ce cas ( et dans ce cas seulement théoriquement ), il faut l'échapper dans la regexp.
Oui. Idem pour le deux-points.
Mais j'ai lu dans un site, que nécessairement, une regexp comportant un dièze,s'arrêtait à ce dièze, sous-entendu même si ce n'est pas le délimiteur ?
Sans doute le site traitait-il des commandes telles que grep, appelées à partir d'un shell unix : s'il n'est pas protégé par des guillemets, un dièse en ligne de commande démarre un commentaire et arrête donc l'interprétation des arguments.
Ou alors l'auteur s'est trompé, cela arrive même sur des sites web. ;-)
Quant au deux-points, je ne vois pas quoi il peut bien servir, si c'est un caractère spécial en PCRE ?
Ce n'en est pas un. Pas plus que le dièse.
Cordialement, -- Olivier Miakinen
Bonjour,
Le 06/03/2014 08:48, Jean Francois Ortolo a écrit :
J'ai encore deux questions à poser :
Est-il vrai que l'un ou l'autre de ces caractères,soient des
méta-caractères, et aient des statuts spéciaux dans les regexp PCRE ?
- Le deux -points ":"
- Le dièze : "#".
Non, c'est faux. Ni l'un ni l'autre ne sont des méta-caractères, et ce
aussi bien dans ou hors des classes de caractères (entre crochets) :
<http://fr2.php.net/manual/fr/regexp.reference.meta.php>.
Je sais bien que le dièze "#" peut servir de délimiteurs, et que dans
ce cas ( et dans ce cas seulement théoriquement ), il faut l'échapper
dans la regexp.
Oui. Idem pour le deux-points.
Mais j'ai lu dans un site, que nécessairement, une regexp comportant
un dièze,s'arrêtait à ce dièze, sous-entendu même si ce n'est pas le
délimiteur ?
Sans doute le site traitait-il des commandes telles que grep, appelées
à partir d'un shell unix : s'il n'est pas protégé par des guillemets,
un dièse en ligne de commande démarre un commentaire et arrête donc
l'interprétation des arguments.
Ou alors l'auteur s'est trompé, cela arrive même sur des sites web. ;-)
Quant au deux-points, je ne vois pas quoi il peut bien servir, si
c'est un caractère spécial en PCRE ?
Le 06/03/2014 08:48, Jean Francois Ortolo a écrit :
J'ai encore deux questions à poser :
Est-il vrai que l'un ou l'autre de ces caractères,soient des méta-caractères, et aient des statuts spéciaux dans les regexp PCRE ?
- Le deux -points ":"
- Le dièze : "#".
Non, c'est faux. Ni l'un ni l'autre ne sont des méta-caractères, et ce aussi bien dans ou hors des classes de caractères (entre crochets) : <http://fr2.php.net/manual/fr/regexp.reference.meta.php>.
Je sais bien que le dièze "#" peut servir de délimiteurs, et que dans ce cas ( et dans ce cas seulement théoriquement ), il faut l'échapper dans la regexp.
Oui. Idem pour le deux-points.
Mais j'ai lu dans un site, que nécessairement, une regexp comportant un dièze,s'arrêtait à ce dièze, sous-entendu même si ce n'est pas le délimiteur ?
Sans doute le site traitait-il des commandes telles que grep, appelées à partir d'un shell unix : s'il n'est pas protégé par des guillemets, un dièse en ligne de commande démarre un commentaire et arrête donc l'interprétation des arguments.
Ou alors l'auteur s'est trompé, cela arrive même sur des sites web. ;-)
Quant au deux-points, je ne vois pas quoi il peut bien servir, si c'est un caractère spécial en PCRE ?
Ce n'en est pas un. Pas plus que le dièse.
Cordialement, -- Olivier Miakinen
Jean Francois Ortolo
Le 06/03/2014 09:03, Olivier Miakinen a écrit :
Bonjour,
Le 06/03/2014 08:48, Jean Francois Ortolo a écrit :
J'ai encore deux questions à poser :
Est-il vrai que l'un ou l'autre de ces caractères,soient des méta-caractères, et aient des statuts spéciaux dans les regexp PCRE ?
- Le deux -points ":"
- Le dièze : "#".
Non, c'est faux. Ni l'un ni l'autre ne sont des méta-caractères, et ce aussi bien dans ou hors des classes de caractères (entre crochets) : <http://fr2.php.net/manual/fr/regexp.reference.meta.php>.
Je sais bien que le dièze "#" peut servir de délimiteurs, et que dans ce cas ( et dans ce cas seulement théoriquement ), il faut l'échapper dans la regexp.
Oui. Idem pour le deux-points.
Mais j'ai lu dans un site, que nécessairement, une regexp comportant un dièze,s'arrêtait à ce dièze, sous-entendu même si ce n'est pas le délimiteur ?
Sans doute le site traitait-il des commandes telles que grep, appelées à partir d'un shell unix : s'il n'est pas protégé par des guillemets, un dièse en ligne de commande démarre un commentaire et arrête donc l'interprétation des arguments.
Ou alors l'auteur s'est trompé, cela arrive même sur des sites web. ;-)
Quant au deux-points, je ne vois pas quoi il peut bien servir, si c'est un caractère spécial en PCRE ?
Ce n'en est pas un. Pas plus que le dièse.
Cordialement,
Bonjour Monsieur
Super réponse. ;)
Je n'ai plus qu'à détecter les crochets échappés, avec un script awk.
Je crois que le caractère échappement est : "", donc reconnaître les tokens : "[" et "]" devrait suffire.
C'est la toute dernière chose que je dois faire pour arranger ces scripts php.
Super merci Monsieur pour vos réponses. ;)
Merci beaucoup.
Respectueusement.
Jean François Ortolo
Le 06/03/2014 09:03, Olivier Miakinen a écrit :
Bonjour,
Le 06/03/2014 08:48, Jean Francois Ortolo a écrit :
J'ai encore deux questions à poser :
Est-il vrai que l'un ou l'autre de ces caractères,soient des
méta-caractères, et aient des statuts spéciaux dans les regexp PCRE ?
- Le deux -points ":"
- Le dièze : "#".
Non, c'est faux. Ni l'un ni l'autre ne sont des méta-caractères, et ce
aussi bien dans ou hors des classes de caractères (entre crochets) :
<http://fr2.php.net/manual/fr/regexp.reference.meta.php>.
Je sais bien que le dièze "#" peut servir de délimiteurs, et que dans
ce cas ( et dans ce cas seulement théoriquement ), il faut l'échapper
dans la regexp.
Oui. Idem pour le deux-points.
Mais j'ai lu dans un site, que nécessairement, une regexp comportant
un dièze,s'arrêtait à ce dièze, sous-entendu même si ce n'est pas le
délimiteur ?
Sans doute le site traitait-il des commandes telles que grep, appelées
à partir d'un shell unix : s'il n'est pas protégé par des guillemets,
un dièse en ligne de commande démarre un commentaire et arrête donc
l'interprétation des arguments.
Ou alors l'auteur s'est trompé, cela arrive même sur des sites web. ;-)
Quant au deux-points, je ne vois pas quoi il peut bien servir, si
c'est un caractère spécial en PCRE ?
Ce n'en est pas un. Pas plus que le dièse.
Cordialement,
Bonjour Monsieur
Super réponse. ;)
Je n'ai plus qu'à détecter les crochets échappés, avec un script awk.
Je crois que le caractère échappement est : "\", donc reconnaître
les tokens : "\[" et "\]" devrait suffire.
C'est la toute dernière chose que je dois faire pour arranger ces
scripts php.
Le 06/03/2014 08:48, Jean Francois Ortolo a écrit :
J'ai encore deux questions à poser :
Est-il vrai que l'un ou l'autre de ces caractères,soient des méta-caractères, et aient des statuts spéciaux dans les regexp PCRE ?
- Le deux -points ":"
- Le dièze : "#".
Non, c'est faux. Ni l'un ni l'autre ne sont des méta-caractères, et ce aussi bien dans ou hors des classes de caractères (entre crochets) : <http://fr2.php.net/manual/fr/regexp.reference.meta.php>.
Je sais bien que le dièze "#" peut servir de délimiteurs, et que dans ce cas ( et dans ce cas seulement théoriquement ), il faut l'échapper dans la regexp.
Oui. Idem pour le deux-points.
Mais j'ai lu dans un site, que nécessairement, une regexp comportant un dièze,s'arrêtait à ce dièze, sous-entendu même si ce n'est pas le délimiteur ?
Sans doute le site traitait-il des commandes telles que grep, appelées à partir d'un shell unix : s'il n'est pas protégé par des guillemets, un dièse en ligne de commande démarre un commentaire et arrête donc l'interprétation des arguments.
Ou alors l'auteur s'est trompé, cela arrive même sur des sites web. ;-)
Quant au deux-points, je ne vois pas quoi il peut bien servir, si c'est un caractère spécial en PCRE ?
Ce n'en est pas un. Pas plus que le dièse.
Cordialement,
Bonjour Monsieur
Super réponse. ;)
Je n'ai plus qu'à détecter les crochets échappés, avec un script awk.
Je crois que le caractère échappement est : "", donc reconnaître les tokens : "[" et "]" devrait suffire.
C'est la toute dernière chose que je dois faire pour arranger ces scripts php.