-1
votes

Quelle regrette à utiliser pour ne prendre que la première occurrence de nombre de chiffres?

J'ai une table avec des commentaires comme celui-ci

'Payment amount: 11000,50 from 144232'

'Payment amount: 13 450,20 from 144232'


2 commentaires

Vous voulez extraire uniquement cette valeur?


J'ai besoin d'obtenir le premier numéro avec deux chiffres après la virgule


4 Réponses :


0
votes

Cela fonctionne pour vos exemples, avec ou sans décimales: xxx

https://regex101.com/r/1jee3f/1


0 commentaires

0
votes

Je le ferais comme ceci: xxx


2 commentaires

Il arrive parfois que la 1ère valeur comme '11 000,00 'avec espace blanche entre centièmes. Comment puis-je résoudre ce cas?


J'ai changé l'expression pour couvrir ça. Mais ne vous attendez pas à une expression comme celle-là que par magie, faites toujours la bonne chose avec des données arbitraires.



0
votes

Un peu plus simple mais moins strict, ([+ \-]? \ d [\ d, \.] +). * xxx

résultat: 11 000,00


0 commentaires

1
votes

Pour obtenir le premier numéro dans la chaîne avec une virgule et 2 chiffres après cela, et les espaces peuvent se produire entre les chiffres dues à la dactylographie: xxx

explication

  • ^ début de chaîne
  • [A-ZA-Z: \ S] * Match 0+ fois l'un des caractères énumérés de la classe de caractères
  • ( capture groupe 1 (cela contiendra la valeur)
    • \ d correspond à un chiffre
    • \ d [\ s \ d] * Match 0+ fois un espace blancheur ou chiffre
    • , \ s * \ d \ s * \ d Faites correspondre une virgule et 2 chiffres avec des caractères blancheurs en option (Ajouter \ M s'il ne peut y avoir plus de caractère de texte Suivant)
    • ) Fermer le groupe 1

      Démo Regex | Démo PostgreSQL


      Un match plus large pourrait être de correspondre à 0+ fois tout Sauf un chiffre \ d * au lieu d'utiliser [a-za-z: \ s] *

      Démo Regex


0 commentaires