简单描述问题:直接导入整个工具包,报错,说找不到Pattern、Matcher符号;
只有直接导入Pattern,Matcher类,才能成功
// import java.util.regex.Pattern;
// import java.util.regex.Matcher;
import java.util.*;
public class TestReplace
{
public static void main(String[] args)
{
String msg = "Java has regular expressions in 1.4";
Pattern p = Pattern.compile("re\\w*");
Matcher matcher = p.matcher(msg);
System.out.println(matcher.replaceAll("哈哈\2"));
}
}
报错,找不到符号;
D:\javaProgram>javac -encoding utf-8 TestReplace.java
TestReplace.java:9: 错误: 找不到符号
                Pattern p = Pattern.compile("re\\w*");
                ^
  符号:   类 Pattern
  位置: 类 TestReplace
TestReplace.java:9: 错误: 找不到符号
                Pattern p = Pattern.compile("re\\w*");
                            ^
  符号:   变量 Pattern
  位置: 类 TestReplace
TestReplace.java:10: 错误: 找不到符号
                Matcher matcher = p.matcher(msg);
                ^
  符号:   类 Matcher
  位置: 类 TestReplace
3 个错误
--------------------------------------------

解决方案 »

  1.   

    import java.util.regex.
      

  2.   

    import java.util.regex.*
      

  3.   

    Matcher 和 Pattern 在 util 下面的 regex包里
      

  4.   

    *号导的是当前包下的所有类(不包括子包),import java.util.*;这句导的是util包下的所有类,当然不包括regex中的类,如果需要导入regex中的所有类,就需要这样导import java.util.regex.*;
      

  5.   

    // import java.util.regex.Pattern;
    // import java.util.regex.Matcher;
    你把这两个注了  肯定找不到了
      

  6.   

    import java.util.regex.*;
    import java.util.Scanner;public class test2 {
        public static void main(String[] args)
        {
                Scanner sc = new Scanner(System.in) ;            Pattern p = new Pattern.compile("^([0-9]-[0-9]{3}-[0-9]{5}-[0-9])$");            Matcher m = p.matcher(sc.nextLine());
        }
    }
    遇到同样的问题了  报错找不到符号  compile
      

  7.   

    。。看错了  多加了个new。。