Java编程思想13.6.4-Pattern和Matcher

1.使用正则表达式。一般来说,比起功能有限的String类,我们更愿意构成功能强大的正则表达式对象。只需要导入java.util.regex包,然后用static Pattern.complile()方法编译你的正则表达式,就会生成Pattern对象。然后传入你要检索的字符串到Pattern对象的matcher()方法。Matcher方法就会生成一个Matcher对象。

2.Pattern类的静态static方法:

static  boolean matches(string regex, charSequence input)

该方法用来检测regex是否匹配整个charSequence类型的input参数。

3.Patternsplit方法。它从匹配regex的地方分割字符串,返回分割后的子字符串string数组。

4.Matcher对象的方法。

Boolean matches(),检测regex是否匹配整个charSequence类型的input参数

Boolean lookingAt(),用来判断字符串的开始部分能否匹配模式

Boolean find(),用来在charSequence中查找多个匹配。

Boolean find(int start),在start起始的地方查找多个匹配。

Find()方法像迭代器那样前向遍历输入字符串。

 

注意:find()可以在输入的任意位置定位正则表达式,而lookingAt()matches()只有在正则表达式与输入的最开始处就开始匹配时才会成功。Matches()只有在整个输入都匹配正则表达式时才会成功,而lookingAt()只有在输入的第一个部分匹配就会成功。

 

5.\\w+将字符串划分为单词。

6.组(Groups)。组是用括号划分的正则表达式,可以根据组的编号来引用某个组。组号0表示整个表达式,组号1表示第一对括号括起来的组,依次类推。

 

group方法,表示在find前向遍历输入字符串的同时,返回此时(位置)匹配的字符串

7.正则表达式。

(?m)(\\S+)\\s+((\\S+)\\s+(\\S+))$

目的是捕获每行最后的3个词。

其中(?m)模式标记

8.Start()end()Start()返回先前匹配的起始位置的索引,而end()返回锁匹配的最后字符的索引加一的值。匹配操作失败之后,调用start()end()将产生IlleglaStateException

9.Pattern标记。

10.Split()方法。

11.替换操作。

replaceFirst(String replacement)

replaceAll(String replacement) ,似乎还有其他重载的形式

appendReplacement(StringBuffer sbuf,String replacement),它允许你调用其他方法来生成或处理replacement

appendTail(StringBuffer sbuf),在执行一次或nappendReplacement()之后,调用此方法将输入字符串余下的部分复制到sbuf中。

 

/\\*!(.*)!\\*/

“ {2,}”    ,表示至少2次。

“(?m)^ +” ,注意^之间有个空格。^表示一行的起始。

[aeiou],表示aeiou

 

12.Reset()。可以将现在的Matcher对象应用于一个新的字符序列。

13.正则表达式与Java I/o

此处展示了应用正则表达式在一个文件中进行搜索匹配操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值