logo

Créer un champ personnalisé avec REGEX

Étiqueté : , , ,

  • Auteur
    Messages
    • Christophe ABRAN
      ChristopheTexto
      Participant

      Bonjour, je suis à la recherche d’une expression REGEX qui dit : je récupère la donnée “0” de la colonne x, s’il est seul ou s’il ne contient pas de chiffre avant ou après.
      Par exemple 1,02, 10, 100 doivent être récupéré, 0, ne doit pas être récupéré.
      Merci d’avance pour votre aide.

    • Nicolas Filloleau
      Nicolas Filloleau
      Participant

      Bonjour,

      Si j’ai bien compris, à partir d’une liste de type 1, 02, 10, 0, 100 on veut obtenir 1, 02, 10, 100 ?
      Si c’est bien ça une regex type REGEX(FIELDSTR('liste source'), '\s0+,', '') devrait faire l’affaire.
      Un espace, suivi d’un zéro ou plusieurs, suivi d’une virgule, remplacé par rien.

      Est-ce que j’ai bien compris la question ?

    • Nicolas Filloleau
      Nicolas Filloleau
      Participant

      On pourrait aussi en profiter pour enlever le 0 avant le 2

      REGEX(FIELDSTR('liste source'), '(?<=\s)0(,\s)?', '')

      1, 02, 10, 0, 100 => 1, 2, 10, 100

    • Christophe ABRAN
      ChristopheTexto
      Participant

      Bonjour Nicolas, oui en effet, tu as bien compris la question :-), je test cela de suite.
      Si tu me permet d’abuser, comment se fait-il que lorsque j’ai 12,50 par exemple dans ma base,EZC le traduit par 12.5 ? Il faudrait que je puisse conserver 2 chiffres après la virgule et conserver la virgule à la place du point.

    • Christophe ABRAN
      ChristopheTexto
      Participant

      Je viens de tester les expressions :
      La première donne cela : pour 0,05 et O : 05 et 0.
      La seconde donne cela : pour 0,05 et 0 : ,05 et rien. (c’est mieux, mais il faudrait que le 0,05 reste 0,05)
      Du coup, j’ai tenté cela mais sans succès :
      REGEX(FIELDSTR(‘liste source’), ‘(?<=[0-9])0(,\s)?’, ”)

    • Nicolas Filloleau
      Nicolas Filloleau
      Participant

      Tu peux mettre la liste source complète et ce que tu veux en sortie ? Je n’avais pas compris que tu avais des décimales.
      Tu as un séparateur , et des décimales séparées par des virgules ? Si c’est le cas on peut se baser sur l’espace.
      1, 02, 1,05, 0, 100 regex (?<=\s)0(,\s)? sortie 1, 2, 1,05, 100

      Sinon pour la question sur le formatage de ton nombre tu peux mettre le formatage du champ en mode personnalisé avec #,## pour avoir des décimales et un séparateur virgule.

    • Christophe ABRAN
      ChristopheTexto
      Participant

      Ok merci pour ton aide, pour le regex, cela fonctionne sauf lorsque l’on a par exemple 0,05, il donne ,05.
      Pour le formatage des champs, c’est bien ce que je fais, mais malheureusement, cela ne fonctionne pas, la palette comprend bien pour les décimales, mais cela conserve les points, c’est bizarre…

    • Nicolas Filloleau
      Nicolas Filloleau
      Participant

      Ça commence à devenir plus marrant 🙂

      1, 002, 1,05, 0, 100, 0,05 Regex (?<=\s)0+(?!,\d)(,\s)? => 1, 2, 1,05, 100, 0,05

      On supprime : un ou plusieurs zéro précédé d’un espace mais non suivi par une virgule suivie d’un chiffre et potentiellement la virgule et l’espace qui suit.

      Pour ton formatage de champs tu es sur d’avoir une virgule entre # et ## ?

    • Christophe ABRAN
      ChristopheTexto
      Participant

      Bravo, le REGEX est bon.
      Le formatage de champs est bien ##,##, c’est étonnant…

    • Christophe ABRAN
      ChristopheTexto
      Participant

      Hello, avec une petite mise à jour de mon EZC, ça fonctionne.
      Encore merci pour ton aide et à bientôt
      Christophe

    • Axel Martinez
      Axel Martinez
      Maître des clés

      Nickel pour ton problème, n’hésite pas à reposter si tu as de nouveaux un soucis 🙂
      Je passe le topic en résolu

The topic ‘Créer un champ personnalisé avec REGEX’ is resolved and closed to new replies.

Facebook
Twitter