2011-11-22 52 views
1

是的,我知道有一個類似的問題,但我想要一個不同的東西。Java中有一個用於字符串規範化的庫?

我想正常化標點,空格,引號,連字符等,但在字母不能碰。

有很多關於雙引號,單引號,空格等字符不同的我想用默認的字符來代替所有的可能性。

目前,我正在使用正則表達式,但我聚會,我發現所有的可能性,並增加了手動正則表達式。我想知道是否有可以做到這一點的lib,但不要將字母替換爲非重音字母。

編輯:

下面是一些例子:

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

許多字符具有相同的字體表示,但在不同的Unicode字符。

+0

你在做什麼,聽起來很合理的,任何圖書館將幾乎做同樣的,雖然我從來沒有聽說過的一個。 – Strelok

回答

1

如果你這樣做是因爲我們做的(全文搜索/索引)同樣的原因,你可以看看文字規範化功能Lucene提供。一個很好的例子是here

與Java的PatternMatcher類,否則正則表達式是你最好的選擇。

+0

我只需要更換標點符號。我看着Lucene,但沒有發現可以做到的事。 –