正则表达式

正则表达式

正则表达式是灵活而强大的文本处理工具。量词描述了一个模式吸收输入文本的方式:①贪婪型:贪婪表达式会为所有可能的模式发现尽可能多的匹配;②勉强型:匹配满足满足模式所需的最少字符串;③占有性:当正则表达式被应用于字符串时,它会产生相当多的状态,一边在匹配失败时可以回溯,而“占有的”量词并不保存这些中间状态,因此它们可以防止回溯。它们常常用于防止正则表达式失控,因此可以使正则表达式执行起来更有效。

CharSequence是一个接口

              interface CharSequence {

       charAt(int i);

       length();

       subsequence(int  start,int end);

       toString();

}

多数正则表达式操作都接收CharSequence类型的参数。

 

Pattern和Matcher

         导入java.util.regex,然而static Pattern.compile()方法来翻译你的正则表达式即可,它会根据你的String类型的正则表达式生成一个Pattern对象。然后把想要检索的字符串传入Pattern对象的matcher()方法。matcher()方法会生成一个Matcher对象,他的replaceAll()方法能将所有匹配的部分都替换成你传入的参数。

String  s = “khlk”;

Pattern p = Pattern.compile(正则表达式);

Matcher m = p.matcher(s);

While(m.find()) {}

几个方法:

boolean matches();

boolean lookingAt();//判断该字符串的始部分是否能够匹配模式

boolean find();//用来在CharSequence查找多个匹配

boolean find(int start);

find()像迭代器那样前向遍历输入字符串;find(i)接收整数作为参数,该整数表示字符串中字符中的位置,并以其作为搜索的起点。

 

组(Group)

组是用括号划分的正则表达式,可以根据组的编号来引用某个组。

A(B(C))D中三个组:组0是ABCD,组1是BC,组2是C

Matcher对象的方法:

     Public intgroupCount()返回该匹配器中模式中的分组数目(不包括0)

Public  String  group()返回前一次匹配操作的第0组(整个匹配)

Public  String  group(int i)返回前一次匹配操作期间指定的组号,如果匹配成功,但是指定的组没有匹配输入字符串的任何部分,则返回null

Public  intstart(int group)返回在前一次匹配操作中寻找的组的起始索引。

Public  int end(intgroup)返回在前一次匹配操作中寻找的组的最后一个字符索引加1的值。

匹配操作失败之后调用上述最后两个方法将会产生IIIegalStateException。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值