4

在java中如何转换-lrb-300-rrb-┬á922-6590-lrb-300-rrb- 922-6590

尝试了以下方法:

t.lemma = lemma.replaceAll("\\p{C}", " ");
t.lemma = lemma.replaceAll("[\u0000-\u001f]", " ");

我可能缺少一些概念性的东西。将不胜感激任何指向解决方案的指针。

谢谢

4

2 回答 2

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"
}

也可以看看:

于 2013-09-04T21:23:24.917 回答
0

假设您只想保留a-zA-Z0-9标点符号,您可以这样做:

t.lemma = lemma.replaceAll("[^\\p{Punct}\\w]", " "));
于 2013-09-04T21:23:31.357 回答