在Java中有一个用于String规范化的库?

时间:2011-11-22 02:49:39

标签: java string normalization text-processing punctuation

是的,我知道有一个类似的问题,但我想要一个不同的东西。

我想标准化标点符号,空格,引号,连字符等,但不要触及字母。

双引号,单引号,空格等有很多不同的字符。我想用默认字符替换所有可能性。

目前,我正在使用正则表达式,但我正在收集我发现的所有可能性并手动添加到正则表达式。我想知道是否有一个可以执行此操作的库,但不要更改字母,如将重音字母替换为非重音字母。

编辑:

以下是一些例子:

text.replaceAll("[–––—]", "-");
text.replaceAll("[\\u0000-\\u0009\\u000B-\\u001F\\u0080-\\u009F]", "");
replacedText = text.replaceAll("[“”“”““”“”“”“”“”]", "\"");
text.replaceAll("[\\u00A0\\u2000-\\u200B\\u205F\t]+", " ");

很多字符具有相同的字体表示,但在Unicode中是不同的字符。

1 个答案:

答案 0 :(得分:1)

如果您出于同样的原因(全文搜索/索引)执行此操作,则可以查看Lucene提供的文本规范化功能。一个很好的例子是here

否则使用Java PatternMatcher类的正则表达式是最好的选择。