黑马程序员技术交流社区

标题: 正则表达式小问题 [打印本页]

作者: 彭盼    时间: 2012-4-24 15:43
标题: 正则表达式小问题
正则表达式中有三个量词greedy、reluctant和possessive,看了api文档得知,这三个量词的功能似乎都是一样的啊,究竟在应用方面怎么去选择它们
作者: 应佳锋    时间: 2012-4-24 15:49
没研究过JAVA的正则表达式 个人觉得 没必要再这块过多的花心思 有这个精力去深入网络编程 和 线程  以后要用了 去查就可以了
作者: 周海诚    时间: 2012-4-24 15:59
量词:量即为数量,意为多少次,由 * + ? {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!");

}

}

作者: 胡奎    时间: 2012-4-24 16:54
楼上介绍很好了,顶一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2