Java正则表达式

Java.util.regex包

匹配规则:从左到右依次匹配

\为转义字符

我们要匹配字符串“a&c” 正则表达式编写为"a\&c",转为java字符串还要加上一个\转义为“a\\&c"

如果匹配“a和c",非ASCII字符--和字需要用\u###表示

为”a\u548cc"

.可以匹配任意一个字符,占位

\d可以匹配一个数字

\w可以匹配一个字母、数字或下划线"java\w" 可以匹配:javac、java8、java_

\s可以匹配一个空白字符"A\sB" ,tab也算一个空白字符

匹配A B、A    B (中间是Tab)

\D匹配非数字

\W可以匹配一个非字母、数字或下划线

\S可以匹配一个非空白字符"A\SB" 匹配A#B、AaB

 

修饰符

*为修饰符,修饰前一个表达式,这里前一个为\d,可以匹配任意个字符 "A\d*" 匹配A、A1、A007

修饰符+可以匹配至少一个字符“A\d+"匹配A1、A007

修饰符?可以匹配0个或1个字符,"A\d?"匹配A、A1

修饰符{n}表示i可以匹配n个字符,如"\d{6}"

修饰符{n,m}可以匹配n-m个字符,"\d{3,5}"匹配3到5个字符

修饰符{n,}可以匹配至少n个字符,"\d{3,}"匹配至少3个字符

 

Java正则表达式_第1张图片

 

Java正则表达式_第2张图片

 

 

分组匹配

(…)可以分组:“(\d{4})\-(\d{1,2})\-(\d{1,2})”

这个“-”也要转义

Java正则表达式_第3张图片

"^"表示开头,$表示结尾,小括号括起来可以直接提取区号和号码

Java正则表达式_第4张图片

提取小时和分钟

Java正则表达式_第5张图片

java中写法

Java正则表达式_第6张图片

 

Java正则表达式_第7张图片

 

Java正则表达式_第8张图片

 

[…]可以匹配范围内的字符:"[a-f]1" 匹配a1、b1、f1

“[a-f0-9]{6}”表示a-f和0-9之间任意字符组成的6个字符

如:1a1a9f、ffffff、000000

ASCII码对照表

[^…]可以匹配非范围内的字符"[^0-9]{6}"

AB|CD匹配AB或CD

Java正则表达式_第9张图片

可以括起来,括号在|中很重要

Java正则表达式_第10张图片

 

Java正则表达式_第11张图片

总结

Java正则表达式_第12张图片

 

正则表达式默认使用贪婪匹配,尽可能多的向后匹配

非贪婪匹配

?可以表示0个或者1个,也可以表示非贪婪匹配

使用?表示非贪婪匹配

Java正则表达式_第13张图片

 

下图第一个问号表示匹配1个或者0个数字,第二个问号表示非贪婪匹配,尽可能少匹配所以就表示匹配了0个数字

Java正则表达式_第14张图片

Java正则表达式_第15张图片

 

 

搜索和替换

使用正则表达式分割字符串

下图是java中写法\,表示逗号\为转义,java中要用\再次转义,前面的\。所以,写成\\,

Java正则表达式_第16张图片

 

find为boolean类型

提取句子中每一个单词

Java正则表达式_第17张图片

连续空格替换为一个空格

Java正则表达式_第18张图片

$1表示反向引用前面匹配到的第一个分组$2表示第二个

Java正则表达式_第19张图片

 

你可能感兴趣的:(Java基础)