句読点と正規表現について質問しましたが、ややこしかったです。
私がこのテキストを持っていると仮定します:
String text = "wor.d1, :word2. wo,rd3? word4!";
私はこれをやっています:
String parts[] = text.split(" ");
そして、私はこれを持っています:
wor.d1, | :word2. | wor,d3? | word4!;
これを得るために私は何をする必要がありますか?(すべてではなく、境界線の記号を保持しますが、指定したもののみ: .,!?:
)。
wor,d1 | , | : | word2 | . | wor,d3 | ? | word4 | !
アップデート
これらの正規表現でいくつかの良い結果が得られていますが、単語の先頭の句読点ですべてが分割される前に空の文字が返されます。
最初にこの空の文字を持たない方法はありますか?
この正規表現は良いですか、それとももっと簡単な方法がありますか?
public static final String PUNCTUATION_SEPARATOR =
"("
+ "("
+ "(?=^[\"'!?.,;:(){}\\[\\]]+)"
+ "|"
+ "(?<=^[\"'!?.,;:(){}\\[\\]]+)"
+ ")"
+ "|"
+ "("
+ "(?=[\"'!?.,;:(){}\\[\\]]+($|\n))"
+ "|"
+ "(?<=[\"'!?.,;:(){}\\[\\]]+($|\n))"
+ ")"
+ ")";