我们有一些输入,例如'java-> Way->
项目测试'。
例如:
我们只需要消除控制字符。 我们使用[\ p {C}]匹配这些字符,遗憾的是它与标签空间和新行字符匹配。请给出(有效的正则表达式模式)解决方案来解决这个问题。
答案 0 :(得分:1)
在Java中,您可以使用此正则表达式:
[\p{Cntrl}&&[^\p{Space}]]
这将匹配控制字符,即[\x00-\x1F\x7F]
,但空格字符,即[ \t\n\x0B\f\r]
在Java中使用:
String re = "[\\p{Cntrl}&&[^\\p{Space}]]";
示例:强>
String title = "xyz a\u0000b\u0007c\u008fd\u0009 - foo \u0009 bar";
title = title.replaceAll("[\\p{Cntrl}&&[^\\p{Space}]]", "");
System.out.printf("[%s]%n", title);
//=> [xyz abcd - foo bar]