Extraire des nombres d’une chaîne avec regex en Java

Les expressions régulières ou Regex est une API pour définir des patterns qui peuvent être utilisés pour rechercher, manipuler et éditer une chaîne en Java. Regex est largement utilisé pour définir des contraintes. Les expressions régulières sont fournies sous le package java.util.

Dans ce tutoriel nous allons découvrir comment extraire des nombres ou des chiffres d’une chaîne de caractères avec regex en Java.
 
 

Exemple 1: Extraire tous les nombres d’une chaîne
import java.util.regex.*;

public class Main 
{
    public static void main(String[]args) 
    {
        Pattern pattern = Pattern.compile("\\d+");
        Matcher matcher = pattern.matcher("str54776str917str78001str");
		
        while(matcher.find()) 
        {
            System.out.println(matcher.group());
        }
    }
}

Sortie:

54776
917
78001

 

Exemple 2: Extraire le Nième chiffre d’une chaîne

Si vous souhaitez extraire uniquement certains nombres d’une chaîne, vous pouvez fournir l’index du nombres à extraire à la fonction group().

Par exemple, si on veut extraire uniquement le deuxième chiffres de la chaîne « str54776str917str78001str », soit 917, nous pouvons utiliser le code suivant :

import java.util.regex.*;

public class Main 
{
  public static void main(String[] args) 
  {
     Pattern pattern = Pattern.compile("[^\\d]*[\\d]+[^\\d]+([\\d]+)");
     Matcher matcher = pattern.matcher("str54776str917str78001str");

     if (matcher.find()) 
     {
         // deuxièmes chiffres correspondants
         System.out.println(matcher.group(1)); 
     }
  }
}

Sortie:

917

 
 

Exemple 3: Extraire un nombre à partir d’une balise

Lorsqu’il s’agit de balises XML ou HTML, il est parfois nécessaire d’extraire une valeur d’un attribut. Par exemple, considérez la balise suivante : <person name="alex" age="25" address="Paris">

Pour extraire l’age, nous pouvons utiliser le code suivant:

import java.util.regex.*;

public class Main 
{
    public static void main(String[]args) 
    {
        Pattern p = Pattern.compile("age=\"([0-9]+)\"");
        Matcher m = p.matcher("<person name=\"alex\" age=\"25\" address=\"Paris\">");

        if (m.find()) 
        {
            System.out.println(m.group(1));
        }
    }
}

Sortie:

25
Les expressions régulières en Java

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *