[PHP] Interdire des caracteres dans 1 chaine
Fermé
Nico
-
1 sept. 2006 à 10:30
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 - 1 sept. 2006 à 20:22
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 - 1 sept. 2006 à 20:22
A voir également:
- Regex tiret
- Caractères ascii - Guide
- Chaine tnt gratuite sur mobile - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Caractères spéciaux clavier azerty - Guide
- Caractères spéciaux - Guide
2 réponses
teebo
Messages postés
33491
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 793
1 sept. 2006 à 11:11
1 sept. 2006 à 11:11
Salut
Cherche regex, ou "expression reguliere" si tu es résolument francophone...
Cherche regex, ou "expression reguliere" si tu es résolument francophone...
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
1 sept. 2006 à 18:41
1 sept. 2006 à 18:41
Bonjour Xavier,
désolé pour la disgression...
Rien de grave, en revanche ça c'est grave
que je ne pouvais pas laisser passer ça : quand on est "résolument francophone", on ne dit pas "expression régulière", qui est une mauvaise traduction de "regular expression", mais "expression rationnelle" !!
Moi non plus je ne pouvais pas laisser passer ça ;)
Et pourquoi c'est grave? Puisque on est dans le monde d'OpenSource, etc... et il y a toujours plusieurs points de vue, et pour toute chose il y a des adepts pour et contre.
Donc ce que tu dis c'est vrai mais pas pour tout le monde (par exemple pour Laurent Dami, celui qui a traduit l'execellent livre - on peut dire la Bible, Maitrîse des Expressions Régulières de Jeffrey E.F. Friedl
Je cite un sous chapitre entier pour ça :
Expressions régulières ou rationnelles?
"En vertu des principes énoncés plus haut, j'ai préféré régulières à rationnelles. Je suis conscient que depuis plusieurs dizaines d'années toute école française a utilisé le terme rationnelles, et que certains défendent aujourd'hui encore avec vigueur cette traduction, comme une sorte d'étendard de la tradition rationnelle française contre l'imperialisme anglophone. Cependant les expressions en question n'ont pas grand-chose à voir avec la raison!
Il est vrai que d'un point de vue mathématique elles ont une certaine parenté avec les nombres que l'on nomme rationnels, qui se traduisent également par rational numbers en anglais. Dans cette logique-là, il aurait peut-être fallu effectivement parler de rational expressions...mais la traduction anglophone n'en a pas voulu ainsi, préférant mettre en avant l'aspect pratique (expressions gouvernées par des règles) plutôt que la cohérence mathématique. Les deux positions sont en principe défendables, mais aujourd'hui la seconde a clairement le dessus: une recherche dans les principaux moteurs d'indexation WEB montre que même dans le monde francophone les pages contenant expressions régulières sont quatre fois plus nombreuses que celles contenant expressions rationnelles.
Ainsi, pour éviter de prendre le lecteur en otage dans des querelles d'école, et pour lui éviter d'inutiles confusions lorsqu'il lira des manuels ou des magazines anglophones, j'ai privilégié le terme régulières."
Par Jeffrey E.F. Friedl - Traduction par Laurent Dami - Edition O'Reilly - 2003
Google
Résultats 1 - 10 sur un total d'environ 3 730 000 pour expressions régulières
et
Résultats 1 - 10 sur un total d'environ 305 000 pour expressions rationnelles.
lami20j
désolé pour la disgression...
Rien de grave, en revanche ça c'est grave
que je ne pouvais pas laisser passer ça : quand on est "résolument francophone", on ne dit pas "expression régulière", qui est une mauvaise traduction de "regular expression", mais "expression rationnelle" !!
Moi non plus je ne pouvais pas laisser passer ça ;)
Et pourquoi c'est grave? Puisque on est dans le monde d'OpenSource, etc... et il y a toujours plusieurs points de vue, et pour toute chose il y a des adepts pour et contre.
Donc ce que tu dis c'est vrai mais pas pour tout le monde (par exemple pour Laurent Dami, celui qui a traduit l'execellent livre - on peut dire la Bible, Maitrîse des Expressions Régulières de Jeffrey E.F. Friedl
Je cite un sous chapitre entier pour ça :
Expressions régulières ou rationnelles?
"En vertu des principes énoncés plus haut, j'ai préféré régulières à rationnelles. Je suis conscient que depuis plusieurs dizaines d'années toute école française a utilisé le terme rationnelles, et que certains défendent aujourd'hui encore avec vigueur cette traduction, comme une sorte d'étendard de la tradition rationnelle française contre l'imperialisme anglophone. Cependant les expressions en question n'ont pas grand-chose à voir avec la raison!
Il est vrai que d'un point de vue mathématique elles ont une certaine parenté avec les nombres que l'on nomme rationnels, qui se traduisent également par rational numbers en anglais. Dans cette logique-là, il aurait peut-être fallu effectivement parler de rational expressions...mais la traduction anglophone n'en a pas voulu ainsi, préférant mettre en avant l'aspect pratique (expressions gouvernées par des règles) plutôt que la cohérence mathématique. Les deux positions sont en principe défendables, mais aujourd'hui la seconde a clairement le dessus: une recherche dans les principaux moteurs d'indexation WEB montre que même dans le monde francophone les pages contenant expressions régulières sont quatre fois plus nombreuses que celles contenant expressions rationnelles.
Ainsi, pour éviter de prendre le lecteur en otage dans des querelles d'école, et pour lui éviter d'inutiles confusions lorsqu'il lira des manuels ou des magazines anglophones, j'ai privilégié le terme régulières."
Par Jeffrey E.F. Friedl - Traduction par Laurent Dami - Edition O'Reilly - 2003
Résultats 1 - 10 sur un total d'environ 3 730 000 pour expressions régulières
et
Résultats 1 - 10 sur un total d'environ 305 000 pour expressions rationnelles.
lami20j
1 sept. 2006 à 11:56
mais en regardant ce que fait ereg(), je ne pense pas qu'elle soit adapté à ce que je veux faire.
En effet, elle permet de vérifier si une chaine est présente dans une autre. Donc, pour mon cas, il faudrait que j'autilise ereg() en recherchant tous les caractères que je souhaite interdire (#, a, b, c, d.... ) soit un nombre énorme ... et c'est donc ingérable...
non ?
1 sept. 2006 à 12:56
[^0-9()+-/*]
Bon je suis plus sûr, il y a des chances que ça soit
[^0-9\(\)\+\-/\*]
1 sept. 2006 à 14:28
[^0-9()+-/*]
Pour qu'un tiret soit inclut dans une regex en tant que caractère il faut le positionner au début, ou à la fin ou il faut l'antislasher et ça puisque dans une classe de caractère le tiret signifie un intervalle.
En revanche dans la 2ème regex tu as bien utilisé \- ;)
On pourrra simplifier un peu [^0-9\(\)\+\-/\*] lami20j
P.S. Pour le + et * pas besoin d'antislasher à l'intérieur d'une classe de caractère, pour les paranthèses je ne suis pas sûr, il faut tester, comme ça on evite d'avoir taper des caractères qu'on n'as pas besoin
1 sept. 2006 à 14:51
j'utilise l'expression "[^0-9()+-/*]" est ça fait ce que je veux.
Merci à tous !!!! et A+
1 sept. 2006 à 18:07
Et désolé si je suis un peu hors sujet, mais vu qu'une réponse a été apportée, je me permets ^^'
Tout ça pour dire, que je ne pouvais pas laisser passer ça : quand on est "résolument francophone", on ne dit pas "expression régulière", qui est une mauvaise traduction de "regular expression", mais "expression rationnelle" !!
Voilà, désolé pour la disgression...
Xavier