如何在 Java 中将 -lrb-300-rrb-┬á922-6590
转换为 -lrb-300-rrb-922-6590
?
尝试了以下方法:
t.lemma = lemma.replaceAll("\\p{C}", " ");
t.lemma = lemma.replaceAll("[\u0000-\u001f]", " ");
我可能缺少一些概念性的东西。将不胜感激解决方案的任何指示。
谢谢
最佳答案
尝试下一个:
str = str.replaceAll("[^\\p{ASCII}]", "");
顺便说一句,\p{ASCII}
都是ASCII:[\x00-\x7F]
。
另一方面,您需要使用Pattern
常量来避免每次都重新编译表达式。
private static final Pattern REGEX_PATTERN =
Pattern.compile("[^\\p{ASCII}]");
public static void main(String[] args) {
String input = "-lrb-300-rrb- 922-6590";
System.out.println(
REGEX_PATTERN.matcher(input).replaceAll(" ")
); // prints "-lrb-300-rrb- 922-6590"
}
另见:
关于java - 替换java中字符串中的任何非ascii字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18623868/