regexp encore !!! :'( [PHP] - PHP - Programmation
Marsh Posté le 18-09-2002 à 15:27:50
si je veux faire une regexp pour matcher des signed integer de
-32768 à 32767 ej fais comment ? !!!! :
Marsh Posté le 18-09-2002 à 15:29:55
Je ne pense pas que ce soit possible, dans la mesure où les expressions régulières ne gèrent que les chaînes de caractères.
Marsh Posté le 18-09-2002 à 15:32:01
1) Tu gardes que la partei numérique de cette chaine.
2) Tu transformes ta chaine en nombre (un simple 0+$var sufit emplement)
3) tu compare ton nombre avec els bornes de l'intervale.
JE vois pas plus simple. A la limite, la partie 2 peut être sauté mais j'en suis pas certain.
Marsh Posté le 18-09-2002 à 15:32:28
mais ya pourtant [0-9]
pourquoi ya pas [0-255] et d'autre strucs
zut alors
Marsh Posté le 18-09-2002 à 15:35:05
omega2 a écrit a écrit : 1) Tu gardes que la partei numérique de cette chaine. 2) Tu transformes ta chaine en nombre (un simple 0+$var sufit emplement) 3) tu compare ton nombre avec els bornes de l'intervale. JE vois pas plus simple. A la limite, la partie 2 peut être sauté mais j'en suis pas certain. |
malheureusement vu comment est foutue mon appli je peux pas faire ça la seule chose que je peux c tchecker la chaine directement telle quelle à une regexp et savoir si trou ou folse
Marsh Posté le 18-09-2002 à 15:35:20
k666 a écrit a écrit : mais ya pourtant [0-9] pourquoi ya pas [0-255] et d'autre strucs zut alors |
[0-9], c'est les caractères '0' à '9' et non pas les nombre 0 à 9.
Si tu veux faire joujou, avec php une des fonctions utilisant des regexp peut utiliser une fonction pour savoir comment remplacer la chaine trouvé. Là, t'auras que des chiffres si tu fais des [0-9] ou équivalent dans ta regexp.
Marsh Posté le 18-09-2002 à 15:36:23
j'ai pas envie de me taper la regexp de malade à l'aide
Marsh Posté le 18-09-2002 à 15:36:33
k666 a écrit a écrit : malheureusement vu comment est foutue mon appli je peux pas faire ça la seule chose que je peux c tchecker la chaine directement telle quelle à une regexp et savoir si trou ou folse |
Et tu peux pas faire une fonction qui vérifiera ta chaine et te retourne true ou false? (j'ai pas le code de ton applis sous les yeux alors je sais pas si c'est fesable)
Marsh Posté le 18-09-2002 à 15:39:55
bin en fait j'ai défini plein de constantes avec les type utilisables dans l'appli
|
et après je fais un check vite fait
par exemple:
|
c la fonction checkState qui est très générique et qui tcheck le bordel,
et je peux pas la compliquer paske ça va être le bordel
donc peux pas faire de trucs cheloux
Marsh Posté le 18-09-2002 à 15:40:41
ji soui nikaid
Marsh Posté le 18-09-2002 à 15:43:38
k666 a écrit a écrit : mais ya pourtant [0-9] pourquoi ya pas [0-255] et d'autre strucs zut alors |
Parce que [0-9] ça repère tous les *chiffres* de 0 à 9, pas les *nombres*
Cela dit on peut faire comme ça pour les entiers de 0 à 32767
([1-2]?[0-9]{0,4})|(3[0-1][0-9]{3})|(32[0-6][0-9]{2})|(327[0-5][0-9]|3276[0-7])
Marsh Posté le 18-09-2002 à 15:46:33
Donc il te reste plus qu'à faire une fonction dérivé de celle ci, qui utilise celle ci et qui fait ensuite des tests complémentaires.
Je vois que ça pour le moment.
Marsh Posté le 18-09-2002 à 15:47:24
gm_superstar a écrit a écrit : Parce que [0-9] ça repère tous les *chiffres* de 0 à 9, pas les *nombres* Cela dit on peut faire comme ça pour les entiers de 0 à 32767 ([1-2]?[0-9]{0,4})|(3[0-1][0-9]{3})|(32[0-6][0-9]{2})|(327[0-5][0-9]|3276[0-7]) |
J'avais pas pensé à aussi simple moi.
Marsh Posté le 18-09-2002 à 16:01:00
gm_superstar a écrit a écrit : Parce que [0-9] ça repère tous les *chiffres* de 0 à 9, pas les *nombres* Cela dit on peut faire comme ça pour les entiers de 0 à 32767 ([1-2]?[0-9]{0,4})|(3[0-1][0-9]{3})|(32[0-6][0-9]{2})|(327[0-5][0-9]|3276[0-7]) |
Marsh Posté le 18-09-2002 à 14:36:06
salut
j'ai des types de données qui doivent respecter des intervalles de définition,
par exemple:
integer doit être entre 0 et 255
sinteger doit être de -1 à 100 (par exemple, c pipo je sais ..) etc...
coment on fait pour pas devoir dénombrer tout, eskil ya un moyen de faire des range dans les regexp ???
merci bien
Message édité par k666 le 18-09-2002 à 15:19:25
---------------
mangez du mozilla c le futur, c votre DESTIN ! http://www.mozilla.org/releases/