Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

[Résolu] [PHP : regexp] Rechercher n'importe quel nombre avec Excel


Messages recommandés

Posté(e) (modifié)

Bonsoir.

 

J'ai besoin dans une expression régulière, à un endroit, de vérifier la présence de n'importe quel nombre (dans une chaine de caractères), avec des exceptions (pouvoir rechercher n'importe quel nombre, sauf 11, 13 ou 17 par exemple).

 

Par exemple, d'accepter la présence de 1 25 364 etc... mais pas de 22 ou 11

 

Seulement, je ne sais pas comment faire ça dans la regexp.

 

J'ai vraiment besoin de votre aide.

 

Merci d'avance.

 

 

edit : j'ai oublié de préciser que les nombres sont des entiers positifs (0 compris).

Modifié par alex.hitman

Posté(e)

Tu comptes faire ça en une seule ou en plusieurs regexp ?

Tes nombres sont formatés d'une certaine façon (virgule ou point comme séparateur de milliers, espaces, etc.) ?

 

Si tu veux savoir s'il y a "11" dans ta chaîne il faut chercher "[^0-9]11[^0-9]" (pour être sûr que "211" ou "5811809" ne vont pas te retourner de faux positifs)...

Pour rechercher plusieurs patterns avec la même regexp, je n'ai plus la syntaxe exacte en tête...

Posté(e)

t'es allé voir sur:

http://www.expreg.com/

C'est la bible du regex :P il y a pas mal d'exemple et de scripts tout fait... avec ca tu peux te débrouiller :P

Posté(e)

Oui je connais ce site tangui, mais avec ça je n'ai pas réussi à faire ce que je veux.

 

 

Kewlcat, "[^0-9]11[^0-9]" ne peut pas trouver "11" car on refuse n'importe quel chiffre avec ça [^0-9] avant d'autoriser 11. On refuse donc dans cet exemple qu'un nombre commence et se termine par un chiffre... (j'ai testé je ne trouve bien aucun résultat).

 

 

Mes nombres ne sont pas formatés de façon particulière, tous leurs chiffres sont collés. Par exemple :

11

123546

789456123 etc...

 

Mon problème est de rechercher tous les nombres sauf quelques exceptions, mais je tombe justement sur des faux positifs (des nombres commençant ou finissant par celui à ne pas accepter).

 

 

Pour l'instant je m'en sort en recherchant n'importe quel nombre, puis en faisant ensuite le tri dans une boucle. Sur un autre forum on m'a dit que c'était plus rapide, qu'en pensez-vous ?

 

 

En tout cas merci ^^

Posté(e)

en tout cas, j'apprecie de voir l'évolution de ton site... tu as tres bien progressé :P

Posté(e)

Merci beaucoup ça me fait vraiment plaisir :P

 

Je ne te cache pas que j'observe aussi régulièrement ton site :P

 

 

En réalité, je suis là en train de reprogrammer entièrement l'application de gestion de mon site, afin que celle-ci n'utilise aucune base de donnée ! D'où l'utilité des expressions régulières de PHP.

 

Mais je pense que pour celle-ci, je vais rester comme cela.

 

Aller, je rajoute un petit [résolu].

Posté(e)
e ne te cache pas que j'observe aussi régulièrement ton site icon_wink.gif

Pourtant je n'y touche plus du tout :P

afin que celle-ci n'utilise aucune base de donnée

j'ai le meme projet en tete depuis un moment, mais je n'ai absolument pas le temps pour m'en occuper

Posté(e)

:P

c'est un bon challenge pour me redonner envie de le remodifier :P

Posté(e)
"[^0-9]11[^0-9]" ne peut pas trouver "11" car on refuse n'importe quel chiffre avec ça [^0-9] avant d'autoriser 11. On refuse donc dans cet exemple qu'un nombre commence et se termine par un chiffre...

(...)

je tombe justement sur des faux positifs (des nombres commençant ou finissant par celui à ne pas accepter).

Euh, mon exemple sert justement à savoir quelles chaines refuser !

Ca permet de partir du principe que tu as une liste de chaines à tester, que tu prends tes "nombres interdits" un par un et tu élimies les chaines qui correspondent en parcourant ta liste...

 

Donc, oui, quand je recherche "11" (pas "112", pas "911", juste une occurrence du nombre 11) je m'arrange pour être bien sûr que l'on n'a pas de chiffre avant ni après (ce qui voudrait dire que les deux chiffres 1 sont au milieu d'un nombre, et que donc ce nombre n'est pas 11 !)

 

Autre exemple : si "689" est un "nombre interdit", tu dois éliminer les chaines qui sont positivement identifiées par (qui "match"ent) la regexp [^0-9]689[^0-9]

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...