日期:2014-05-20  浏览次数:20731 次

问个关于正则的问题
String       src           =       "你好1,234你好 ";    
String       regex       =       "好([0-9|,]*)你 ";    
Pattern       p=       Pattern.compile(regex);    
Matcher       m       =       p.matcher(       src);    
    while(m.find()){    
    String       s       =       m.group();    
    System.out.println(s);      
    }

这样我能够得到   好1,234你
但是我只想得到   1,234
应该怎么写呢?是要该我的正则还是有什么实现这个的专门类?


------解决方案--------------------
import java.util.Date;
import java.util.regex.*;
public class test{
public static void main(String[] args)
{
String src = "你好1,234你好 ";
String regex = "\\d,\\d{3} ";
Pattern p= Pattern.compile(regex);
Matcher m = p.matcher(src);
while(m.find()){
String s = m.group();
System.out.println(s);
}
}

}
不知道是不是这样写哦 我是新手
------解决方案--------------------
输出group(1)即可
------解决方案--------------------
String regex = "好?([0-9|,]*)你? ";

“好”, “你”可以没有或者只有一个
------解决方案--------------------
jdk中自带正则表达式的开发包,在java.util.regex包中,但功能很少,推荐使用jakarta-oro开发包编写正则表达式程序。