J'ai un texte multi-lignes.
1,00 kg 159,62 159,62
3 Réponses :
J'ai pu y parvenir avec cette simple regex: explication:
Recherchez une ligne qui a «kg» dedans et prenez un numéro à la fin de la ligne dans un groupe de capture. Assurez-vous d'avoir une démo sur regex101.com: https://regex101.com/r/u9pq8i/1/ p> p>
C'est une regex extramly perdue. correspondra à n'importe quel personnage afin que vous associiez la chaîne "foobar-kg !!!!!!" 12121212121212121212 "Probablement pas ce que vous voulez! Voir REGEX101.com/R/U9PQ8I/2
Eh bien, je suppose que le démarreur du sujet peut décider si c'est ce qu'il veut ou non. Compte tenu de sa structure de données, cela fonctionne simplement et est simple à lire. Bien sûr, si la structure de données change beaucoup, il a besoin d'une solution plus compliquée.
Salut Pavel, celui-ci m'a donné le nombre entier, atteindre la virgule, ce que je veux, c'est de l'exclure de la deuxième décimale, comme de: 1,00 kg 159,62 159 62050223 B> Je veux 050223 B> et: 1,00 kg 461,90 461,90710201449 B> Je veux 710201449 B> La structure est plus compliquée, mais nous pouvons laisser toute la donnée Structure pour le moment parce que les premières choses d'abord :)
Hey @friend, vous avez donc besoin d'un numéro de deux chiffres après un coma comme 1 234567 se transforme en 4567? Est-ce exact?
Correct, la regex semblait un peu complexe pour mes connaissances.
Je vois qu'il y a déjà une réponse correcte, mais juste pour la consistance, voici ma version qui fonctionne également et est un peu plus simple :. * kg. * \ B. *, \ D + $) ( Regex101.com/r/U9PQ8I/3 )
Votre regex est très lâche Voir cet exemple https://regex101.com/r/7qvm6w/1 Vous devez examiner les exigences réelles de la ligne 3, sera-t-elle toujours au format que vous suggérez? Si oui, essayez peut-être la regex suivante avec un groupe de capture pour saisir les caractères finaux.
questions à poser p>
https://regex101.com/r/7qvm6w/2 p> La valeur que vous avez après sera dans le groupe de capture final p> p>
La référence de valeur m'a donné la valeur correcte! Merci! Non seulement avez-vous résolu le problème que vous me donnez réellement bonne idée!
Est-il possible d'utiliser regex dans l'automatisation, de nettoyer les PDF, je suis un peu nouveau dans Regex, disons que nous avons eu des fournisseurs différents et qu'ils envoient des factures en PDF mais diffrent des mises en page. Est-il possible que REGEX nettoie les données de tous les PDF pour obtenir la sortie DESIERD?
C'est une question beaucoup plus grande que la regex que vous demandez à l'origine ici.II n'a aucune expérience de faire cela, cela peut être possible, je recommanderais de demander à une autre question sur Stackoverflow
J'utiliserais le fait que Ceci peut être fait en utilisant un groupe de capture et une référence à ce groupe. P>
La regex serait Testez ici: https://regex101.com/r/C0PPRG/2 p>
Explication: P>
^ [\ d,] + \ s + kg \ s + ([\ d,] +) \ s + \ 1 (\ d +) \ s * $ code> avec le < code> i code> (insensible) et m code> ( ^ code> et $ code> match lignes début et fin). p>
^ [\ d,] + code> correspondra aux numéros et aux virgules une fois ou plus. p> li>
\ s + code> pour un ou plusieurs espaces. p> li>
kg \ s + code> pour le cas insensible kg code> mot avec quelques espaces après. p> li>
([\ d,] +) code> pour capturer la première valeur telle que 461,90 ou 159,62. P> LI>
\ 1 code> est la référence à ce groupe capturé. p> li>
(\ d +) code> est le deuxième groupe que vous recherchez: -) p> li>
ul>
Cela correspondrait à ce qui suit ",1" Je suppose que cela dépend de la spécification du fichier de données comme cela se produirait et ce qui devrait se produire si Cela fait
@Damo oui, exactement! Eh bien, la meilleure personne à savoir comment écrire la regex est celle qui sait ce que contient les données!
vrai, nous devons deviner aux exigences de véritable entreprise