文章目录

  • 正则表达式
  • 概述
  • 定义
  • 作用
  • 好处
  • 弊端
  • 详解
  • 表述单个字符
  • 预定义字符类
  • 数量词
  • 模糊数量词
  • 精确数量词
  • 相关的方法


正则表达式

概述

定义

就是一个字符串
注意:正则表达式就是一个字符串,所以要加双引号

作用

可以表达:一个字符串,一类字符串,一类字符串的规则或者格式

好处

简洁的表述复杂的规则

比如验证qq号码:(非0开头;全是数字;5-15位)

String str = "1234";
	System.out.println(str.matches("[1-9][0-9]{4,14}"));//false

弊端

易错,判断规定不完全,容易存在漏洞

详解

表述单个字符

符号:[ ]
[abc]——》a、b、c三选一
[^abc]——》除了a、b、c以外的单个字符
[a-zA-Z]——》a-z和A-Z之间的单个字符
——》任意单个字符

预定义字符类

java中用“\\”代替“\”

罗列

说明


任意一个字符

反斜杠

转义

反斜杠点

取消点的特殊功能,就表示一个点

\d

数字字符

\D

非数字字符

\s

空格字符(换行\n也算)

\S

非空格字符

\w

[a-zA-Z0-9_]

\W

除了\w以外的字符

数量词

用于修饰字符出现的次数,即某个字符重复出现多少次

模糊数量词

模糊数量词

说明

X?

X字符,出现0或者1次

X+

X字符,出现1或者多次

X*

X字符,出现任意次,包括0次

精确数量词

模糊数量词

说明

X{n}

X字符,恰好出现n次

X{n,}

X字符,至少出现n次

X{n,m}

X字符,至少出现n次,最多m次

例如,

String pwd = "12";
System.out.println(pwd.matches("\\w*"));//true
String name = "123456";
if(name.matches("[1-9][0-9]{5,9}")) {
	System.out.println("符合");
}else {
	System.out.println("不符合");
}

相关的方法

Ⅰ、boolean matches(String regex):判断普通字符串是否和正则表达式匹配,使用String类的matches(),返回值为boolean。

String regex = "[a-zA-Z0-9_]";
	System.out.println("a".matches(regex));//true

Ⅱ、String[] split(String regex):使用指定的正则表达式切割当前字符串。注意返回的是数组;点在java中表示任意一个字符。所以需要转义,就需要用到“\”,但是在Java中用“\\”代替“\”

String str = "com.baidu.www";
	String[] arr = str.split("\\.");
	System.out.println(Arrays.toString(arr));//[com, baidu, www]

Ⅲ、String replaceAll(String regex,String replacement):将regex正则表达式表述的子字符串,全部替换为replacement新串。操做普通字符串使用replace进行替换,但是这里需要使用正则表达式,所以使用replaceAll()进行替换

String str2 = "abc123abc";
		String result = str2.replaceAll("[0-9]", "");//用空代替数字,已达到删除数字的效果
		System.out.println(result);//abcabc









PS:
【】表示重点,删除线表示已解决
学习记录使用,有什么不妥的还望指证