Java正则表达式的Quantifiers

孟岩写了一篇文章说 正则表达式 ,我试了一下java的,见 Java Tutorial

1.Greedy

2.Reluctant

3.Possessive

先看个例子:

while (matcher.find()) {
                console.format(”I found the text /”%s/” starting at ” +
                   “index %d and ending at index %d.%n”,
                    matcher.group(), matcher.start(), matcher.end());
                found = true;
            }

比如说字符串是“<book> <title> Perl Hacks </title> </book>/t”

那么pattern是

1。”<.*>”,则结果是:I found the text “<book> <title> Perl Hacks </title> </book>” starting at index 0 and ending at index 42.

2。”<.*?>”,则结果是:

I found the text “<book>” starting at index 0 and ending at index 6.
I found the text “<title>” starting at index 7 and ending at index 14.
I found the text “</title>” starting at index 26 and ending at index 34.
I found the text “</book>” starting at index 35 and ending at index 42.

3。”<.*+>”,那么就什么也找不到

greedy:吃掉整个字符串,看是否match,如果不配,则backtracking吐出一个个字符,看是否匹配

reluctant:也就是我们说的lazy,过程相反,从字符串开始,一个个字符看是否匹配,最后做的是整个字符串

possessive:吃掉整个字符串,但是不往外吐,结果是没找到(作用是??),做一次且一次

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值