A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彭盼 中级黑马   /  2012-4-24 15:43  /  1713 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

正则表达式中有三个量词greedy、reluctant和possessive,看了api文档得知,这三个量词的功能似乎都是一样的啊,究竟在应用方面怎么去选择它们

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

3 个回复

正序浏览
楼上介绍很好了,顶一下
回复 使用道具 举报
量词:量即为数量,意为多少次,由 * + ? {n}组合表示
用代码事例最为清晰:
package com.test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test2 {

public static void main(String[] args) {
  
/*   Greedy 数量词
   X? X,一次或一次也没有 (一次性全部把字符串读取进来,递减匹配)

   Reluctant 数量词
   X?? X,一次或一次也没有 (读取最少的)

   Possessive 数量词
   X?+ X,一次或一次也没有 (一次性全部把字符串读取进来匹配)

   *
   */
  
   Pattern p = Pattern.compile("(.{3,10}+)([0-9])");
   String s = "aaaa5bbbb68";
   Matcher m = p.matcher(s);
   if(m.find())
    System.out.println(m.start() + "-" + m.end());
   else
    System.out.println("not match!");

}

}
回复 使用道具 举报
没研究过JAVA的正则表达式 个人觉得 没必要再这块过多的花心思 有这个精力去深入网络编程 和 线程  以后要用了 去查就可以了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马