1

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

我想规范化标点符号、空格、引号、连字符等,但不涉及字母。

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

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

编辑:

这里有些例子:

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

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

4

1 回答 1

1

如果您出于与我们相同的原因(全文搜索/索引)这样做,您可以查看Lucene提供的文本规范化功能。一个很好的例子是here

否则,带有 JavaPatternMatcher类的正则表达式是您最好的选择。

于 2011-11-22T03:08:39.437 回答