[英]replace any non-ascii character in a string in java
一个人怎么会转换-lrb-300-rrb-┬á922-6590
到-lrb-300-rrb- 922-6590
在java中?
尝试了以下内容:
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"
}
也可以看看:
假设你只想保留a-zA-Z0-9
和标点字符,你可以这样做:
t.lemma = lemma.replaceAll("[^\\p{Punct}\\w]", " "));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.