package pattern;
import java.util.regex.*;
import static pattern.Console.output;public class UsePattenMatcher { /**
 * @param args
 */
public static void main(String[] args) {
    String phones="Justin 的手机号是:0939-100391"
              +"Momor  的手机号是:0939-123233";
    
Pattern pattern = Pattern.compile(".*0939-//d{6}");
Matcher matcher = pattern.matcher(phones);
while(matcher.find())
{

output("%1$s%n",matcher.group());

         

}
}}
package pattern;
import java.io.PrintStream;
public class Console {
    private static PrintStream out=System.out;
    public static void output(String format,Object... Msgs)
    {
       out.printf(format,Msgs);
     }
   public static void output(Object... Msgs)
   { 
   out.println(Msgs);
   
   }
}
这个为什么打出来是一行啊   当我改成 String phones=“justin 9923-123231/n”;就可以了啊  
请求解决!

解决方案 »

  1.   

    我想分两行把上面信息打印出来
    可是只有一行啊     将phones里的信息第一个字符串后面加个就可以 
    我想问这为什么啊 
      

  2.   

    Pattern pattern = Pattern.compile(".*?(0939-\\d{6})");
      

  3.   

    Pattern pattern = Pattern.compile(".*?0939-\\d{6}");//是\\d,不是//d,其实像-这种符号都可以转移一下,因为在正则式里面它有特殊的含义;还有一个就是楼上说过的非贪婪匹配,加个?不然你的.*会匹配到第二个手机号前面,".*0939-\\d{6}"//没有?,.*会匹配下面红色部分
    "Justin   的手机号是:0939-100391Momor     的手机号是:0939-123233";