Partage
  • Partager sur Facebook
  • Partager sur Twitter

[regex]simuler un langage

Anonyme
    18 novembre 2014 à 21:00:18

    hello ! je reviens à des regex, je pense avoir tout bien fait mais ca plante tout de meme sur regex101 ...

    ce qu'elle doit faire :

    (...) ouverture du bloc de condition

    puis (dedans) :

    (code ici)soit &, soit |(code ici):{mot<-(code ici)}

    on a un truc comme ca :

    (([++])&([--]):{variable<-([--])})

    et ma regex detecte que des conneries quand je veux detecter un elif ainsi:

    ((code)& ou |(code):{mot<-(code)})>ON RENTRE DANS LE ELIF JUSTE APRES LA '>'((code)& ou |(code):{mot2<-(code)})

    et ma regex:

    (?P<condition>\((?P<cond1>\(.+\))(?P<sep>[&|])(?P<cond2>\(.+\)):{(?P<name>\w*?)<-(?P<code>\(.+\))}\))(?P<elif>>\((?P<cond_elif>\(.+\))(?P<sep_elif>[&|]?)(?P<cond2_elif>\(.+\)):{(?P<name_elif>\w*?)<-(?P<code_elif>\(.+\))}\))?

    Merci de votre aide !

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      18 novembre 2014 à 21:36:56

      Salut Fola,
      Je te propose cette regex: (?P<if>{((?:.|\n)*?):\s*((?:.|\n)*?)})\s*(?P<elif>(?:{((?:.|\n)*?):\s*((?:.|\n)*?)})*)(?P<else>{((?:.|\n)*?)})? qui est testable ici.<br/> Dis moi si ça te convient :)<br/> Tu peux l'exploiter en traduisant le code de chaque compartiment de condition en Python.<br/> J'ai pas bien compris ta syntaxe (encore une fois xD) mais t'aura juste à adapter.

      -
      Edité par Anonyme 18 novembre 2014 à 21:40:14

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        19 novembre 2014 à 7:16:14

        merci :)

        oui ca me convient car on peut, a vu d'oeil, enlever un champ (par ex {x==4: blabla} sans que le match ne donne rien :D

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          19 novembre 2014 à 12:02:51

          J'ai update la regex, elle devient (?P<if>{([^;:]*)\s*:\s*([^;}]*)})\s*(?P<elif>(?:{(?:[^:;]*)\s*:\s*(?:[^;}]*)})*)(?P<else>{([^;}]*)})?;. Testable ici.<br/> Edit: re-update

          -
          Edité par Anonyme 19 novembre 2014 à 12:34:06

          • Partager sur Facebook
          • Partager sur Twitter

          [regex]simuler un langage

          × 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