J'ai une table avec des commentaires comme celui-ci
'Payment amount: 11000,50 from 144232' 'Payment amount: 13 450,20 from 144232'
4 Réponses :
Cela fonctionne pour vos exemples, avec ou sans décimales:
Je le ferais comme ceci:
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.
Un peu plus simple mais moins strict, résultat: 11 000,00 p> p> ([+ \-]? \ d [\ d, \.] +). * code>
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: explication em> p> Démo Regex | Démo PostgreSQL P> Un match plus large pourrait être de correspondre à 0+ fois tout Sauf un chiffre Démo Regex P> P>
^ code> début de chaîne li>
[A-ZA-Z: \ S] * code> Match 0+ fois l'un des caractères énumérés de la classe de caractères LI>
( code> capture groupe 1 fort> (cela contiendra la valeur)
\ d code> correspond à un chiffre li>
\ d [\ s \ d] * code> Match 0+ fois un espace blancheur ou chiffre li>
, \ s * \ d \ s * \ d code> Faites correspondre une virgule et 2 chiffres avec des caractères blancheurs en option (Ajouter \ M code> s'il ne peut y avoir plus de caractère de texte Suivant) li>
ul>
li>
) code> Fermer le groupe 1 Li>
ul>
\ d * code> au lieu d'utiliser [a-za-z: \ s] * code> p>
Vous voulez extraire uniquement cette valeur?
J'ai besoin d'obtenir le premier numéro avec deux chiffres après la virgule