Java正则表达式基础<一>

java.util,regex包中包含一个匹配操作结果的接口;以及两个类;

接口:MatchResult

MatchResult接口用来匹配操作结果,包含用于确定正则表达式匹配结果的查询方法;通过MatchResult可以查看匹配边界、组合组边界,但是不能修改

类:Matcher ; Pattern

指定为字符串的正则表达式首先必须被编译为Pattern的实例;然后再将得到的匹配模式用于创建Matcher对象,依据正则表达式,该对象可以与任意字符序列匹配。执行匹配所涉及的所有状态都驻留在匹配器中;所以多个匹配器可以共享同一模式。

典型的调用顺序是:
   
   
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();// 当且仅当整个区域序列匹配此匹配器的模式时才返回  true
下面语句等效于上面三条语句:
   
   
boolean b = Pattern.matches("a*b", "aaaaab");
代码示例:
   
   
package javaRegexTest;
 
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
Allows you to easily try out regular expressions.
{Args: abcabcabcdefabc "abc+" "(abc)+" "(abc){2,}" }
"abc+"匹配 ab 后面跟一个或多个c
"(abc)+" 匹配一个或者多个完整的 abc 字符串
"(abc){2,}" 匹配至少连个abc字符串衔接一起
*/
public class regexTestStringMatcher {
 
public static void main(String[] args) {
if (args.length < 2) {
System.out.println("Usage:\njava TestRegularExpression " +
"characterSequence regularExpression+");
System.exit(0);
}
System.out.println("Input: \"" + args[0] + "\"");
System.out.println("----------------------------------------------");
for (String arg : args) {
System.out.println("Regular expression: \"" + arg + "\"");
Pattern p = Pattern.compile(arg);//将指定的字符串编译,并得到Pattern类的实例
Matcher m = p.matcher(args[0]);//创建匹配给定输入与此模式的匹配器
while (m.find()) {//尝试查找与该模式匹配的输入序列的下一个子序列,匹配成功
//则可以通过start、end、group方法获取更多信息
System.out.println("Match \"" + m.group() + "\" at positions " +
m.start() + "-" + (m.end() - 1));
}
System.out.println("----------------------------------------------");
}
}
 
}
输出结果:
   
   
Input: "abcabcabcdefabc"
----------------------------------------------
Regular expression: "abcabcabcdefabc"
Match "abcabcabcdefabc" at positions 0-14
----------------------------------------------
Regular expression: "abc+"
Match "abc" at positions 0-2
Match "abc" at positions 3-5
Match "abc" at positions 6-8
Match "abc" at positions 12-14
----------------------------------------------
Regular expression: "(abc)+"
Match "abcabcabc" at positions 0-8
Match "abc" at positions 12-14
----------------------------------------------
Regular expression: "(abc){2,}"
Match "abcabcabc" at positions 0-8
----------------------------------------------


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值