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.Pattern的split方法。它从匹配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()只有在输入的第一个部分匹配就会成功。
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),在执行一次或n次appendReplacement()之后,调用此方法将输入字符串余下的部分复制到sbuf中。
/\\*!(.*)!\\*/
“ {2,}” ,表示至少2次。
“(?m)^ +” ,注意^和+ 之间有个空格。^表示一行的起始。
[aeiou],表示a或e或i或o或u
12.Reset()。可以将现在的Matcher对象应用于一个新的字符序列。
13.正则表达式与Java I/o
此处展示了应用正则表达式在一个文件中进行搜索匹配操作。