import java.lang.reflect.*;
import static net.mindview.util.Print.*;
import java.util.regex.*;public class Test
{
    public static void main(String[] args) throws Exception
    {
         if(args.length == 0)
         {
              print("Please input the arguments of the paragram: ");
              System.exit(1);
         }
         Pattern p = Pattern.compile("\\w+\\.");
         Class<?> c = Class.forName(args[0]);
         Method[] methods = c.getMethods();
         Constructor[] ctors = c.getConstructors();
         for(Method method: methods)
         {
             print(
               p.matcher(method.toString()).replaceAll(""));
             
         } 
            
         print("=========================");
         for(Constructor ctor: ctors)
            print(ctor);
    }
}
帮忙看看两行代码:Pattern p = Pattern.compile("\\w+\\.");
print(p.matcher(method.toString()).replaceAll(""));
请讲解一下,p是匹配什么的?然后method.toString()的replaceAll("")为什么能将输出方法前面的包名给去掉?谢谢

解决方案 »

  1.   

    Pattern p = Pattern.compile("\\w+\\."); 这个是匹配字串是字母数字下划线的任意个后面在加个点啊
    例如:ddfd_123.
    因为他们和csdn.java.lang.都匹配所以就能替换了啊
      

  2.   

    我查了下API,对于后面那个"."上面是这样说的:“ Any character (may or may not match line terminators) ”,那意思不是说那个点匹配除了终止符的任意字符么? 所以我就不理解\\w+\\.的意思了。
      

  3.   

    恩,我明白了,再问个问题哈,呵呵,假如想使用那个“.”去匹配所有的除终结符之外的字符,该怎么写那个Pattern呢?还有,终结符是不是就是指的是"$"?  谢谢啊,麻烦了!