RegEx Java - Matcher tout sauf ce qui ce termine par ...

Résolu
Bonsoir,
Je recherche depuis un bon moment comment pourrai-je à travers une Regex Java matcher tout sauf ce qui ce se termine par quelchose, par exemple :

300 200 100 Mo

La regex doit prendre 300 et 200 mais pas 100 car il se termine par Mo ( ne pas matcher tous les chiffres qui se terminent par Mo ou Go ou To )

Merci

2 réponses

  1. Modérateur
    Bonjour,

    Déjà il faut bien avoir conscience que les expressions régulières ne peuvent pas tout faire. Ensuite dans ton cas bien particulier il faut savoir ce que tu veux matcher.

    Tu ne veux pas matcher "100 Mo" d'accord, mais est-ce que ça veut dire que tu veux matcher "300 200" séparément, ou "300" et "200" séparément.
    Comment est-ce que tu utilises cette expression régulière ensuite, est-ce que c'est avec un Scanner, un split, etc. La manière dont tu vas t'en servir va fortement influencer l'expression régulière en elle même.

    De plus rien ne t'empêches de faire plusieurs passes, c'est à dire utiliser une expression régulière, faire un traitement, puis utiliser une seconde expression régulière pour finir le traitement (par exemple : détecter ce que tu veux supprimer, le remplacer puis récupérer ce que tu veux)
    -1
    1. Merci d'avoir pris le temps de répondre,

      Voila un petit exemple un peu plus claire:

      Disque Dur SATA 3.5" 2014 500 Go

      Je voudrais matcher tout sauf 500 Go (car après 500 on a Go). pour avoir au final

      Disque Dur SATA 3.5" 2014
      0
      1. Modérateur
        Donc ton problème est plus simple, car il n'y a pas à découper "300" et "200" comme avant.

        En gros ceci suffirait :
        (.*) [0-9]+ [kMGT]o
        0
      2. @KXCa fonctionne Perfecto, Merci beaucoup KX
        0