Site Web original : série d'expressions régulières Java - utilisation de Pattern et Matcher_IT couteau tranchant blog dégainé-blog CSDN
Introduction
illustrer
Cet article présente l'utilisation de deux classes importantes dans les expressions régulières Java : Pattern et Matcher.
En Java, le package java.util.regex définit les classes associées utilisées par les expressions régulières, et les deux classes principales sont : Pattern et Matcher.
- Modèle : créez un modèle correspondant après avoir transmis l'expression régulière.
- Matcher : utilisez l'expression régulière fournie par l'instance de Pattern pour faire correspondre la chaîne cible.
exemple
// 将正则表达式编译成 Pattern 对象,(1 或 0 个符号,后跟 至少一个数组[0-9])
Pattern pattern = Pattern.compile("-?\\d+");
// 利用 Pattern 对象生成 Matcher 对象.
Matcher matcher = pattern.matcher("-1234");
// 查看匹配结果
System.out.println(matcher.matches());
Ce qui précède peut également être écrit comme ceci (si vous n'utilisez les expressions régulières qu'une seule fois, vous pouvez utiliser les correspondances de méthodes statiques de Pattern) :
// 使用 Pattern 对象的静态方法执行一次正则匹配.
System.out.println(Pattern.matches("-?\\d+", "123"));
Vous pouvez également écrire :
"123".matches("-?\\d+");
Modèle
créer
Les deux méthodes statiques suivantes peuvent créer un modèle
public static Pattern compile(String regex)
public static Pattern compile(String regex, int flags)
Exemple:
Pattern pattern = Pattern.compile("[a-z]\\d{3}.*");
Diviser
Cette méthode est utilisée pour diviser la chaîne et renvoyer un String[]
//通过正则表达式对input进行分割。
public String[] split(CharSequence input)
//通过正则表达式对input进行分割,limit参数指明分割的段数。
public String[] split(CharSequence input, int limit)
exemple
Pattern p=Pattern.compile("\\d+");
String[] str=p.split("我的QQ是:456456我的电话是:0532214我的邮箱是:[email protected]");
résultat
str[0]="我的QQ是:", str[1]="我的电话是:", str[2]="我的邮箱是:[email protected]"
autre
Créer une variable Matcher
public Matcher matcher(CharSequence input) Crée un objet Matcher pour l'entrée de chaîne cible.
Convertir la chaîne s en un littéral régulier
public static String quote(String s)
Correspondant
méthode d'indexation
La méthode index fournit des valeurs d'index utiles indiquant exactement où dans la chaîne d'entrée une correspondance peut être trouvée :
méthode |
illustrer |
public int start() |
Renvoie l'index initial de la correspondance précédente. |
public int start (groupe int) |
renvoie l'index initial de la sous-séquence capturée par le groupe donné lors de l'opération de correspondance précédente |
public int fin() |
Renvoie le décalage après le dernier caractère correspondant. |
fin publique int (groupe int) |
Renvoie le décalage après le dernier caractère de la sous-séquence capturée par le groupe donné lors de l'opération de correspondance précédente. |
méthode de recherche
La méthode find vérifie la chaîne d'entrée et renvoie un booléen indiquant si le modèle a été trouvé :
méthode |
illustrer |
public booléen LookingAt() |
Tente de faire correspondre la séquence d'entrée commençant au début de la région avec ce modèle. |
recherche booléenne publique() |
Tente de trouver la sous-séquence suivante de la séquence d'entrée qui correspond à ce modèle. |
recherche booléenne publique (int start) |
Réinitialise ce matcher, puis tente de trouver la sous-séquence suivante de la séquence d'entrée en commençant à l'index spécifié qui correspond à ce modèle. |
correspondances booléennes publiques() |
Tente de faire correspondre la région entière avec le modèle. |
Méthode de remplacement
La méthode replace est une méthode qui remplace le texte dans la chaîne d'entrée :
méthode |
illustrer |
public Matcher appendReplacement ( StringBuffer sb, remplacement de chaîne) |
Implémentez les étapes d’ajout et de remplacement non terminaux. |
public StringBuffer appendTail (StringBuffer sb) |
Mettre en œuvre les étapes d’ajout et de remplacement du terminal. |
public String replaceAll (remplacement de chaîne) |
Remplace chaque sous-séquence de la séquence d'entrée dont le modèle correspond à la chaîne de remplacement donnée. |
public String replaceFirst (remplacement de chaîne) |
Remplace la première sous-séquence de la séquence d'entrée dont le modèle correspond à la chaîne de remplacement donnée. |
chaîne statique publique quoteReplacement (String s) |
Renvoie la chaîne de remplacement littérale pour la chaîne spécifiée. Cette méthode renvoie une chaîne qui fonctionne comme une chaîne littérale passée à la méthode appendReplacement de la classe Matcher. |