2011-04-02 50 views
10

有沒有辦法在java中打印出正則表達式模式的lookahead部分?帶有前瞻性的Java正則表達式

String test = "hello world this is example"; 
    Pattern p = Pattern.compile("\\w+\\s(?=\\w+)"); 
    Matcher m = p.matcher(test); 
    while(m.find()) 
     System.out.println(m.group()); 

這段代碼打印出:

你好
世界


我想要做的是打印的話是對的:

你好世界
世界,這
這 是
是例如

我該怎麼辦呢?

回答

9

您可以簡單地把捕捉前瞻表達括號內:

String test = "hello world this is example"; 
Pattern p = Pattern.compile("\\w+\\s(?=(\\w+))"); 
Matcher m = p.matcher(test); 
while(m.find()) 
    System.out.println(m.group() + m.group(1));