「.」、「?」、「!」などの文末記号のすべてのインスタンスを置き換えようとしていますが、「dr」などの文字列は置き換えたくありません。と「さん」。
私は次のことを試しました:
text = text.replaceAll("(?![mr|mrs|ms|dr])(\\s*[\\.\\?\\!]\\s*)", "\n");
...しかし、それはうまくいかないようです。任意の提案をいただければ幸いです。
編集:ここでのフィードバックと少しの微調整の後、これが私の問題に対する実用的な解決策です。
private String convertText(String text) {
text = text.replaceAll("\\s+", " ");
text = text.replaceAll("[\n\r\\(\\)\"\\,\\:]", "");
text = text.replaceAll("(?i)(?<!dr|mr|mrs|ms|jr|sr|\\s\\w)(\\s*[\\.\\?\\!\\;](?:\\s+|$))","\r\n");
return text.trim();
}
このコードは、すべて* の複合文と単一文をテキストの抜粋から抽出し、すべての句読点と不要な空白を削除します。
※一部例外あり...