✀ ✁ ✂ ✃ ✄ ✅ ✆ ✇ ✈ などのすべての UTF-8 句読点文字と記号を文字列から除外するための最良かつ最も効率的な方法は何ですか。他の言語 (ą、ę、ó など) の文字を保持したいので、az、AZ、および 0-9 以外のすべての文字を単純に除外することはできません。よろしくお願いします。
質問する
1295 次
4 に答える
3
\p{L}
すべてのユニコード文字に一致させるために使用できます。例:
public static void main(String[] args) throws IOException {
String[] test = {"asdEWR1", "ąęóöòæûùÜ", "sd,", "✀","✁","✂","✃","✄","✅","✆","✇","✈"};
for (String s : test)
System.out.println(s + " => " + s.replaceAll("[^\\p{L}^\\d]", ""));
}
出力:
asdEWR1 => asdEWR1
ąęóöòæûùÜ => ąęóöòæûùÜ
sd, => sd
✀ =>
✁ =>
✂ =>
✃ =>
✄ =>
✅ =>
✆ =>
✇ =>
✈ =>
于 2013-05-13T16:41:03.703 に答える
3
Unicodeバイナリ分類の組み合わせを試してください:
String fixed = value.replaceAll("[^\\p{IsAlphabetic}\\p{IsDigit}]", "");
于 2013-05-13T16:38:49.603 に答える
1
アイデアは、最初にアクセントを削除することです。
public static String onlyASCII(String s) {
// Decompose any ŝ into s and combining-^.
String s2 = Normalizer.normalize(s, Normalizer.Form.NFD);
// Removee all non-ASCII
return s2.replaceAll("[^\\u0000-\\u007E\\pL]", "");
}
ギリシャ\\pL
文字などに。
于 2013-05-13T16:52:24.703 に答える