Partage
  • Partager sur Facebook
  • Partager sur Twitter

expression régulière

ne fini pas par

    28 juin 2019 à 16:55:03

    Bonjour, je ous solicite ojd afin de trouver une solution pour matcher du texte ne finissant pas par (1 | NORMAL | REDUNDANT). Ce sont les trois choix que je veux définir dans "ne finissant pas par". Je veux matcher tout ce qui commence par 1 et ne finissant pas par soit 1 soit NORMAL soit REDUNDANT.

    regex1=/^1[\d\w\s]{1,}/;
    regex2=/(?!(NFSSERVER|NORMAL|REDUNDANT|1$))/;

    j'ai séparé mon besoin en deux regex car je n'ai pas réussi à le faire en une seule. Mais je n'arrive toujours pas a matcher correctement ce que je veux.

    Auriez-vous des pistes svp ?

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
      3 juillet 2019 à 11:45:37

      Up, je reviens vers vous car je n'ai toujours pas trouvé de solution à mon problème.

      J'en suis à ce stade : 

      regexcpu=/^1[\d\w, ]{1,}(?!NFSSERVER|NORMAL|REDUNDANT|1$)/;

      J'aimerai matcher tout ce qui commence par '1' suivi de n'importe quoi, ne comportant pas NFSSERVER, NORMAL ou REDUNDANT (car ils se trouvent souvent en milieu de ligne)  et ne se terminant pas par NFSSERVER, NORMAL, REDUNDANT (car ils se trouvent souvent en fin de ligne ) ou 1.

      Help plizz

      **: à ce stade je récupère tout ce qui commenc par 1 mais également tout ce qui termine par NFSSERVER NORMAL REDUNDANT ou 1 en plus de celle qui ne se terminent pas par tout ça

      -
      Edité par Claudeemmm 3 juillet 2019 à 11:55:50

      • Partager sur Facebook
      • Partager sur Twitter
        3 juillet 2019 à 13:37:07

        tes lignes commence pas 1 ou cela peut se trouver au mileur d'une ligne ?

        est-ce que NORMAL et REDUNDANT peuvent se retrouver en mileur de ligne ?

        voila une première regex :

        ^1(.+[^(NORMAL|REDUNDANT)])?$

        elle va trouver : 

        1 // non
        1 NORMAL // non
        1 pas bon // oui
        1 NORMAL mais pas bon // oui




        Si tu veux plus d'aide il va falloir que tu montres un resultat de ce que tu veux en sortie (ligne de text avec resultat souhaité)

        -
        Edité par ox223252 3 juillet 2019 à 13:38:16

        • Partager sur Facebook
        • Partager sur Twitter

        la connaissance est une chose qui ne nous appauvrit pas quand on la partage.

        Mon GitHub

          3 juillet 2019 à 13:48:09

          Salut Ox merci pour ta réponse alors mes ligne doivent impérativement commencer par 1 (^1) et ne pas contenir NORMAL et autres soit au milieu soit a la fin.

          je récupère cela pour l'instant:

          1,1,13,14,35,35
          
          1,2,1,1,33,33
          
          1,3,27,32,16,16
          
          1,4,9,9,13,13
          
          1,5,1,1,18,18
          
          1,6,9,10,13,13
          
          1,7,10,10,13,13
          
          1,8,1,1,18,18
          
          1,9,7,7,14,14
          
          1,10,5,4,9,9
          
          1,11,4,5,9,9
          
          1,12,1,1,8,8
          
          1,13,6,6,14,14
          
          1,14,7,7,14,14
          
          1,15,7,7,14,14
          
          1,16,1,1,19,19
          
          1,1,MNS21,MNA20,ENABLED,INSERVICE,MGMT,NORMAL
          
          1,2,MNS21,MNA20,ENABLED,INSERVICE,MGMT,REDUNDANT
          
          1,3,PNS41,PNA45,ENABLED,INSERVICE,ENET,NORMAL
          
          1,4,PNS41,PNA45,ENABLED,INSERVICE,ENET,NORMAL
          
          1,5,PNS41,PNA45,ENABLED,INSERVICE,ENET,REDUNDANT
          
          1,6,PNS41,PNA45,ENABLED,INSERVICE,ENET,NORMAL
          
          1,7,PNS41,PNA45,ENABLED,INSERVICE,ENET,NORMAL
          
          1,8,PNS41,PNA45,ENABLED,INSERVICE,ENET,REDUNDANT
          
          1,9,CNS86,CNA81,ENABLED,INSERVICE,STM1OC3,NORMAL
          
          1,10,SPS80,NONE,ENABLED,INSERVICE,SPS,NORMAL
          
          1,11,SPS80,NONE,ENABLED,INSERVICE,SPS,NORMAL
          
          1,12,SPS80,NONE,ENABLED,INSERVICE,SPS,REDUNDANT
          
          1,13,CNS81,CNA81,ENABLED,INSERVICE,STM1OC3,NORMAL
          
          1,14,CNS81,CNA81,ENABLED,INSERVICE,STM1OC3,NORMAL
          
          1,15,CNS86,CNA81,ENABLED,INSERVICE,STM1OC3,NORMAL
          
          1,16,CNS86,CNA08,ENABLED,INSERVICE,STM1OC3,REDUNDANT
          
          1,SYSTEM,NORMAL,1000008
          
          1,DEBUG,NORMAL,100011F
          
          1,TRACE,DISABLED,NFSSERVER,0,0,0,0
          
          1,ACCT,NORMAL,105C90D, 1
          

          Je veux récupérer que celles du dessus uniquement avec les chiffres (les 15 premières). Et donc ignorer les autres. Merci pour ton aide.

          -
          Edité par Claudeemmm 3 juillet 2019 à 13:51:43

          • Partager sur Facebook
          • Partager sur Twitter
            3 juillet 2019 à 17:13:50

            si tu ne veux que celle avec des chiifres : 

            ^(\d+(, ?)?)+$



            • Partager sur Facebook
            • Partager sur Twitter

            la connaissance est une chose qui ne nous appauvrit pas quand on la partage.

            Mon GitHub

              3 juillet 2019 à 17:32:56

              Il s'agit enfaite  d'un fichier de log et la sortie que je t'ai donnée correspond à un résultat splité les virgules ne font pas partie de mon fichier. Je reprend du code en perl c'est pourquoi j'essai de reproduire les recherches de la même manière qu'elles étaient faites.

              je pars de ça 

              my @check = grep { $_ =~ '^1' } <$RAW>;
                  my @chk = grep {!/NFSSERVER|NORMAL|REDUNDANT|1$/} @check;

               je n'ai pas le résultat obtenu avec ta regex. Je continue de chercher de mon coté si j'y arrive je te le ferais savoir.

              Merci bien 



              -
              Edité par Claudeemmm 3 juillet 2019 à 17:33:58

              • Partager sur Facebook
              • Partager sur Twitter
                3 juillet 2019 à 19:16:28


                Une proposition

                 var str="1,8,PNS41,PNA45,ENABLED,INSERVICE,ENET,REDUNDANT|1,15,7,7,14,14|1,16,1,1,19,19|1,1,MNS21,MNA20,ENABLED,INSERVICE,MGMT,NORMAL|1,2,MNS21,MNA20,ENABLED,INSERVICE,MGMT,REDUNDANT|1,3,PNS41,PNA45,ENABLED,INSERVICE,ENET,NORMAL|1,4,PNS41,PNA45,ENABLED,INSERVICE,ENET,NORMAL".split('|')
                
                  tbl=str.filter(function(lgn){return /^1/.test(lgn) && !/(1|NORMAL|REDUNDANT|NFSERVER)$/.test(lgn)});
                  console.log(tbl);
                

                 qu'il conviendrait de compléter ou pour supprimer les NORMAL, REDUNDANT et NFSERVER apparaissant en milieu de texte.

                Peut-être pourrait-on supprimer tous les enregistrements contenant ces mots plus ceux se terminant par 1. 

                • Partager sur Facebook
                • Partager sur Twitter

                expression régulière

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown