java之正则表达式

本文详细介绍Java中正则表达式的使用方法,包括String、Pattern和Matcher类的主要功能及应用场景,如模式匹配、子串查找与替换等,并解析了各种字符匹配规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.涉及到的三个类:java.lang.String/java.util.regex.Pattern/java.util.regex.Matcher

 

2:String 类有几个相关的方法
1.boolaen matches(String regex);
2.String replaceAll(String regex,String replacement)

 

3.Pattern(指定匹配模式)
常用的三个指定匹配模式的静态常量
Pattern.CASE_INSENSITIVE/忽略US-ASCII字符集大小写
Pattern.COMMENTS/忽略空格字符(空格,tab,回车等)
Patterm.MULTLINE/这种模式"^"和"$"分别匹配一行的开始和结束.默认情况下,这两个表达式只匹配字符串的开始和结束

常用方法:
Pattern compile(String regex) /编译一个正则表达式
Pattern compile(String regex,int flags)/后面一个参数指定匹配模式
String[] split(String regex)/按指定模式划分
static Matcher matcher(CharSequence input)/将匹配结果封装在Matcher里
里面还有个特殊的静态方法:
boolean Pattern.matches(String regex,String input)/返回是否匹配

 

字符匹配规则:
[]/一个大括号表示匹配一个字符
[ab]/表示a,b选一个
[^abc]/[]括号里的^表示非
[a-d]/a到d里选一个
[a-zA-Z]/a到z或者A到Z里选一个
[a-d[m-p]]/等价[a-dm-p]
[a-z&&[def]]/a到z并且是def中的一个
[a-z&&[^bc]]/
[a-z&&[^m-p]]/

特殊系列字符:
.:任意字符
\d:表示数字[0-9]
\D:表示非数字[^0-9]
\s:空格字符[\t\n\x0B\f\r]
\S:非空格字符
\w:文字字符[0-9a-zA-Z|_]
\W:非文字字符


功能字符系列:
^:表示一行的开始
$:表示一行的结束

 


?:表示一个或更少
*:表示0或更多
+:表示1或更多
{n}表示n次
{n,}表示至少n次
{n,m}表示至少n次至多m次
():表示分组

 

 

 


4:Matcher类:用于实现不同的匹配查找方式
里面常用的构造方法:
boolean matches();/能否匹配(指针会移动)
boolean find();/能否找到子串(指针会移动)
boolean lookingAt()/从头开始找子串(指针会移动)
void reset(int tag)/设置匹配指针位置,参数默认0
String group(int tag)/返回找到的子串(子串里可以分组),参数表示组,默认0(表示整个子串)
int end()/返回匹配的起始位置(前提是能匹配到,否则抛出异常)
int start()/返回匹配的末尾
String replaceAll(String replacement)/将所有匹配的子串替换为replacement,返回更改后的字符串
String replaceFirst(String replacement)/
Matcher appendReplacement(StringBuffer sb,String replacement)/将当前找到的子串替换成replacement(最后的字符串保存在sb里)
StringBuffer appendTail(StringBuffer sb)/将原字符串后面没匹配的末尾串加到sb末尾

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值