Java регулярное выражение с lookahead - PullRequest
12 голосов
/ 02 апреля 2011

есть ли способ напечатать часть шаблона регулярного выражения в 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());

этот фрагмент выводит:

привет
мир
это
это

я хочу напечатать слова в виде пар:

привет мир
мир это
это
это пример

как я могу это сделать?

1 Ответ

12 голосов
/ 02 апреля 2011

Вы можете просто поместить захватывающие скобки в выражение предпросмотра:

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));
...