2011-04-02 84 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));