正则表达式模式用于排除控制字符并包括所有语言字符选项卡和新行必须包含

时间:2016-11-21 16:11:22

标签: java regex control-characters

我们有一些输入,例如'java-> Way-> 项目测试'。 例如: enter image description here

我们只需要消除控制字符。 我们使用[\ p {C}]匹配这些字符,遗憾的是它与标签空间和新行字符匹配。请给出(有效的正则表达式模式)解决方案来解决这个问题。

1 个答案:

答案 0 :(得分:1)

在Java中,您可以使用此正则表达式:

[\p{Cntrl}&&[^\p{Space}]]

这将匹配控制字符,即[\x00-\x1F\x7F],但空格字符,即[ \t\n\x0B\f\r]

Java RegEx Reference

在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]