本人正在学正则表达式,在编程的过程中遇到一个奇怪的问题,如下:
import java.util.regex.*;public class TheReplacements
{
public static void main(String[] args) throws Exception
{
String s = "abcdefghi";
Matcher mInput = Pattern.compile("\\d").matcher(s);
if(mInput.find())
s = mInput.group();
System.out.println(s);结果为:
abcdefghi
我个人认为,正则表达式只会匹配[0-9],怎么会匹配String 类型的呢?希望大家帮下!谢谢

解决方案 »

  1.   

    你的s不就是String类型吗?s的值没改变说明mInput.find()正如你希望的没有匹配上,所以输出还是"abcdefghi"
      

  2.   

    只是匹配数字嘛。。感觉楼主有点自找麻烦
    String regex="[0-9]";
    String str="0"; //0-9任意一个数字
    System.out.pritnln(str.match(regex)); //true
      

  3.   

    揭贴率:35.00% import java.util.regex.*;public class TheReplacements
    {
        public static void main(String[] args) throws Exception
        {
            String s = "abcdefghi";
            Matcher mInput = Pattern.compile("\\d+").matcher(s);
            if(mInput.find())
                System.out.println(mInput.group());