Maison >Java >javaDidacticiel >Comment extraire un nombre d'une chaîne en Java à l'aide d'expressions régulières ?

Comment extraire un nombre d'une chaîne en Java à l'aide d'expressions régulières ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-12 18:49:15947parcourir

How to Extract a Number from a String in Java Using Regular Expressions?

Comment extraire une valeur d'une chaîne à l'aide d'expressions régulières en Java

Question :

Étant donné une série de chaînes structurées comme "[un certain texte] [un certain nombre] [un peu plus de texte]", comment pouvons-nous extraire la valeur "un certain nombre" utiliser les classes d'expressions régulières (regex) de Java ? Nous sommes principalement intéressés par une seule instance de « un certain nombre » et les chaînes source sont courtes.

Réponse :

Pour réaliser l'extraction, suivez ces étapes :

  1. Créer un motif Objet :

    • Définissez un objet Pattern à l'aide de Pattern.compile(regex) avec l'expression régulière souhaitée. Par exemple :

      private static final Pattern p = Pattern.compile("^([a-zA-Z]+)([0-9]+)(.*)");
  2. Créer un objet Matcher :

    • Obtenir un objet Matcher en utilisant p .matcher(sourceString) pour faire correspondre le modèle avec l'entrée chaîne.
  3. Vérifier une correspondance :

    • Invoquez m.find() pour déterminer si le modèle est présent dans la chaîne.
  4. Extraire le Valeur :

    • Si une correspondance est trouvée, utilisez m.group(index) pour récupérer le groupe souhaité. Par exemple, m.group(2) renvoie la valeur « un certain nombre ».

Exemple :

Matcher m = p.matcher("Testing123Testing");

if (m.find()) {
    System.out.println(m.group(2)); // prints 123
}

Raffinements Regex :

Pour extraire le premier nombre, utilisez le régulier suivant expression :

^\D+(\d+).*

Cela correspond aux chaînes dans lesquelles un caractère autre qu'un chiffre est suivi d'un ou plusieurs chiffres et caractères supplémentaires. m.group(1) récupérera la valeur "un certain nombre".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn