Java中有一个用于字符串规范化的库



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

我想规范标点符号、空格、引号、连字符等,但不要在字母中触碰。

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

目前,我正在使用regex,但我正在收集我发现的所有可能性,并手动添加到regex中。我想知道是否有一个lib可以做到这一点,但不要像将重音字母替换为非重音字母那样更改字母。

编辑:

以下是一些例子:

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

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

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

否则,带有Java的PatternMatcher类的regex是您的最佳选择。

最新更新