Principes de base des expressions régulières et utilisation de Java


Notions de base sur les expressions régulières


Syntaxe des expressions régulières (1)
    Caractères ordinaires: les lettres, les chiffres, les caractères chinois, les traits de soulignement et les signes de ponctuation sans définitions spéciales sont tous des «caractères ordinaires». Les caractères ordinaires de l'expression, lorsqu'ils correspondent à une chaîne, correspondent au même caractère
  • Caractère d'échappement simple:

    \ n: représente un caractère de nouvelle ligne

    \ t: représente un caractère de tabulation

    \\: signifie \ lui-même

    \ ^ ......: correspond au caractère lui-même


Grammaire des expressions régulières (2)

  • Jeu de caractères standard:

    Expressions pouvant correspondre à plusieurs caractères

    Notez qu'il est sensible à la casse, la capitalisation signifie le contraire

    \ d: n'importe quel nombre, n'importe lequel de 0 à 9

    \ w: toute lettre ou trait de soulignement ou caractère chinois, c'est-à-dire l'un quelconque des A ~ Z, a ~ z, 0 ~ 9

    \ s: y compris l'un des caractères vides tels que les espaces, les tabulations et les retours à la ligne.

    .: Le point décimal peut correspondre à n'importe quel caractère


Grammaire des expressions régulières (3)

  • Jeu de caractères personnalisés:

    [] Méthode de correspondance entre crochets, peut correspondre à n'importe quel caractère entre crochets

    [ab5 @]: correspond à n'importe quel caractère entre crochets

    [^ abc]: correspond à n'importe quel caractère sauf abc

    [fk]: correspond à n'importe quel caractère entre "f" et "k"

    [^ A-F0-3]: correspond à tout caractère qui n'est pas AF ou 0-3 


Grammaire des expressions régulières (4)

  •     Symboles spéciaux pour modifier le nombre de correspondances

    {n}: répétez l'expression n fois

    {m, n}: l'expression est répétée au moins m fois et au plus n fois

    {m,}: répéter l'expression au moins m fois

    ? : Correspond à l'expression 0 ou 1 fois, équivalent à {0,1}

     +: L'expression apparaît au moins une fois, équivalent à {1,}

     *: L'expression n'apparaît pas ou apparaît un certain nombre de fois, équivalent à {0,}

     Modèle gourmand dans le nombre de correspondances, (plus il y a de caractères correspondants, mieux c'est, la valeur par défaut)

     Le modèle non gourmand dans les temps de correspondance (moins il y a de caractères correspondants, mieux c'est, ajoutez un "?" Après le symbole spécial qui modifie les temps de correspondance). Exemple: \ d {2,4} ?, changez donc le mode en non gourmand


Grammaire des expressions régulières (5)

  •     Limite des caractères (ce groupe de marques ne correspond pas aux caractères mais aux positions, positions qui remplissent certaines conditions)

    ^: correspond à la position du début de la chaîne (calculée par une ligne)

    $: correspond à la fin de la chaîne

    \ b: Match word boundary // Par exemple, boy \ b n'est pas une discordance de limites sur le côté droit de boy


Utiliser des expressions régulières et des fonctions courantes en Java

public class TestRegex {
	public static void main(String []args)
	{
		//Pattern p = Pattern.compile("^\\d{4}");  //在java中的反斜杠要用两个前面一个转义,因为\d中的\做反义用
		Pattern p = Pattern.compile("(\\d{4})([a-z]{2})");
		Matcher m = p.matcher("asdfsadfsafd2342314asdfsadf2342asdfsaf");
		
		System.out.println(m.matches());		//匹配整个目标字符串
		System.out.println(m.find());			//查找字符串
		
		List<String> list = new ArrayList<String>();		//用来存储找到的group
		while(m.find())						//m.find()找到一个后就去找下一个了
		{
			System.out.println(m.group());		//group(),group(0)的作用是一样的
			System.out.println(m.group(0));
			System.out.println(m.group(1));
			System.out.println(m.group(2));		//如果写3的话会超出范围
			list.add(m.group());
		}
		
		String []str = "aa33fdf55cc".split("\\d{2}");		//按照两个整数来切分
		String str2 ="asd2dsfdfds".replaceAll("\\ds", "**");		//将ds替换掉,生成新的字符串,因为前面是常量不可变
		System.out.println("asdfsdf".matches("\\w+"));		//匹配字符串
	}
}



Je suppose que tu aimes

Origine blog.csdn.net/u012457196/article/details/38537009
conseillé
Classement