Как сохранить разделитель при использовании RegEx?

Я задал вопрос о пунктуации и регулярном выражении, но это сбивало с толку.

Предположим, у меня есть этот текст:

String text = "wor.d1, :word2. wo,rd3? word4!"; 

Я делаю это:

String parts[] = text.split(" ");

И у меня есть это:

wor.d1, | :word2. | wor,d3? | word4!;

Что Мне нужно сделать это? (Оставьте символы на границах, но только те, которые я указал: .,!?: , не все).

wor,d1 | , | : | word2 | . | wor,d3 | ? | word4 | !

ОБНОВЛЕНИЕ

I Я получаю хорошие результаты с этим регулярным выражением, но он дает пустой символ перед всеми разделениями на пунктуацию в начале слова.

Есть способ избавиться от этого пустого символа в начале?

Это регулярное выражение хорошее, или есть более простой способ?

public static final String PUNCTUATION_SEPARATOR =
        "("
        + "("
        + "(?=^[\"'!?.,;:(){}\\[\\]]+)"
        + "|"
        + "(?<=^[\"'!?.,;:(){}\\[\\]]+)"
        + ")"
        + "|"
        + "("
        + "(?=[\"'!?.,;:(){}\\[\\]]+($|\n))"
        + "|"
        + "(?<=[\"'!?.,;:(){}\\[\\]]+($|\n))"
        + ")"
        + ")";
7
задан Renato Dinhani 23 August 2011 в 03:07
поделиться