Java 正则表达式

122 阅读2分钟

正则表达式

正则表达式的作用

  • 校检字符串是否满足规则
  • 在一段文本中查找满足要求的内容

正则表达式的使用

  • 在String类中提供了matches方法来判断字符串是否于给定的正则表达式相匹配

public boolean matches(String regex)

  • 字符类(只匹配一个字符)
正则表达式说明
[abc]只能是a,b或c
[^abc]除了a,b,c之外的任何字符
[a-zA-Z]a到z,A到Z,包括(范围)
[a-d[m-p]]a到d,或m到p
[a-z&&[def]]a-z和def的交集,即d,e,f
[a-z&&[ ^bc]]a-z和非bc的交集,等同于[ad-z]
[a-z&&[ ^m-p]]a-z和除了m-p的交集,等同于[a-lq-z]
  • 预定义字符(只匹配一个字符)
正则表达式说明
.任何字符
\d一个数字:[0-9]
\D非数字:[ ^0-9]
\s一个空白字符:[\t\n\x0B\f\r]
\S非空白字符:[ ^\s]
\w[a-zA-Z_0-9]英文、数字、下划线
\W[ ^\w]一个非单词字符
  • 数量词
正则表达式说明
X?X,一次或0次
X*X,零次或多次
X+X,一次或多次
X{n}X,正好n次
X{n,}X,至少n次
X{n,m}X,至少n次但不超过m次
  • 小结
正则表达式说明举例
[]里面的内容只出现一次[0-9] [a-zA-Z0-9]
()分组a(bc)+
取反[ ^abc]
&&交集,不能写单个的&[a-z&&m-p]
|写在方括号外面表示并集[a-zA-Z0-9] x|X
.任意字符\n 回车符号不匹配
\转义字符\ \d
\ \d0-9\ \d+
\ \D非0-9\ \D+
\ \s空白字符[\t\n\x0B\f\r]
\ \S非空白字符[ ^\s]
\ \w单词字符[a-zA-Z_0-9]
\ \W非单词字符[ ^w]
?0次或1次\ \d?
*0次或多次\ \d* (abc)*
+1次或多次\ \d+ (abc)+
{}具体次数a{7} \ \d{7,19}
(?i)忽略ab的大小写(?i)abc
a((?i)b)c只忽略b的大小写a((?i)b)c

** 转义字符\ **

  • 改变后面那个字符原本的含义

  • 例如:\"

    • 此时\表示转义字符,改变了后面那个双引号原本的含义
    • 把它变成了一个普普通通的双引号而已
  • 例如:\\

    • 前面的\是一个转义字符,改变了后面\原本的含义
    • 把它变成一个普普通通的\而已
    • 简单来记:两个\表示一个\