Java用\\p{片假名}正则表达式替换日文字符
Java replace Japanese characters with \\p{Katakana} regular expression
我已经关注link
并且用户 "slevithan" 提供使用 \p{Katakana}
public static void main(String[] args) {
String str = "マイポケット (1).csv";
str= str.replaceAll( "[\p{Katakana}]", "_");//.replaceAll("\p{Z}", "_");
System.out.println(str);
}
但我得到一个错误:
Exception in thread "main" java.util.regex.PatternSyntaxException: Unknown character property name {Katakana} near index 12
[\p{Katakana}]
我正在与 java 8 合作。
使用 String replaceAll 检查日语字符的正确语法是什么?
我需要同时支持英文和日文字母
那个正则表达式可以解决问题:
str.replaceAll( "[/p{Han}/p{Hiragana}/p{Katakana}&&[^\.^\p{IsAlphabetic}^\p{IsDigit}^-]]", "_");
最好的解决方案是在使用否定前瞻时使用此正则表达式。
str.replaceAll("(?![-,.,/p{Han}/p{Hiragana}/p{Katakana},\p{IsAlphabetic}\p{IsDigit}])[\p{Punct}\s]", "_");
我已经关注link
并且用户 "slevithan" 提供使用 \p{Katakana}
public static void main(String[] args) {
String str = "マイポケット (1).csv";
str= str.replaceAll( "[\p{Katakana}]", "_");//.replaceAll("\p{Z}", "_");
System.out.println(str);
}
但我得到一个错误:
Exception in thread "main" java.util.regex.PatternSyntaxException: Unknown character property name {Katakana} near index 12
[\p{Katakana}]
我正在与 java 8 合作。 使用 String replaceAll 检查日语字符的正确语法是什么?
我需要同时支持英文和日文字母
那个正则表达式可以解决问题:
str.replaceAll( "[/p{Han}/p{Hiragana}/p{Katakana}&&[^\.^\p{IsAlphabetic}^\p{IsDigit}^-]]", "_");
最好的解决方案是在使用否定前瞻时使用此正则表达式。
str.replaceAll("(?![-,.,/p{Han}/p{Hiragana}/p{Katakana},\p{IsAlphabetic}\p{IsDigit}])[\p{Punct}\s]", "_");