如何在java中将-lrb-300-rrb-┬á922-6590
转换为-lrb-300-rrb- 922-6590
?
尝试了以下内容:
t.lemma = lemma.replaceAll("\\p{C}", " ");
t.lemma = lemma.replaceAll("[\u0000-\u001f]", " ");
可能缺少一些概念性的东西。非常感谢任何有关解决方案的指示。
谢谢
答案 0 :(得分:10)
尝试下一个:
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"
}
另见:
答案 1 :(得分:0)
假设您只想保留a-zA-Z0-9
和标点字符,您可以这样做:
t.lemma = lemma.replaceAll("[^\\p{Punct}\\w]", " "));