1
votes

RegEx pour extraire la dernière combinaison de nombres d'un paragraphe

RegEx pour extraire la dernière combinaison de nombres d'un paragraphe

Par exemple :

"Mon identifiant est le 112243 et mon numéro de téléphone est le 0987654321. Merci."

Je veux donc extraire le numéro de téléphone ici, qui est la dernière combinaison de chiffres.


2 commentaires

Votre identifiant sera-t-il toujours le même nombre de numéros? Vous pouvez essayer d'obtenir une expression régulière basée sur le modèle de numéro de téléphone pour l'extraire.


Qu'as-tu fait jusqu'ici? Quel problème rencontrez-vous?


3 Réponses :


4
votes

Vous pouvez utiliser cette expression régulière,

const s = 'My ID is 112243 and my phone number is 0987654321. Thanks you.'

console.log(s.match(/\d+(?=\D*$)/))

Ici, \ d + sélectionne un ou plusieurs nombres et cette anticipation positive (? = \ D * $ ) garantit que si quelque chose est présent plus loin avant la fin de la chaîne, ce n'est pas un chiffre (en utilisant \ D * avant $ ).

Démo Regex

Démo du code JS,

\d+(?=\D*$)


0 commentaires

1
votes

var string = "My ID is 112243 and my phone number is 0987654321. Thanks you";
var numbers = string.match(/\d+/g).map(Number);
console.log(numbers);

Il vous donnera tous les combos de nombres dans un tableau. Vous pouvez choisir celui que vous voulez.


0 commentaires

1
votes

Vous pouvez également utiliser une expression régulière simple comme ^. * \ b (\ d +)

var str = 'My ID is 112243 and my phone number is 0987654321. Thanks you';
var num = str.match(/^.*\b(\d+)/)[1];
console.log(num);
  • Greedy . * consommera tout ce qui est avant le dernier \ b code> limite du mot suivi de \ d + chiffres.
  • La parenthèse autour de \ d + capturera le trucs à l'intérieur de [1
  • Si l'entrée est une chaîne multiligne, utilisez comme [\ s \ S] * au lieu de . * pour ignorer les nouvelles lignes.


1 commentaires

Merci. Fonctionnement et meilleur pour le document multiligne. C'est exactement ce dont j'avais besoin.