【问题标题】:Regex Pattern for exclude control characters and include all language charactes tab and new line must include [duplicate]用于排除控制字符并包括所有语言字符选项卡和新行的正则表达式模式必须包括 [重复]
【发布时间】:2016-11-21 16:11:22
【问题描述】:

我们有一组像 'java-> Way-> 这样的输入 项目测试'。 前任:

我们只需要删除控制字符。 我们使用 [\p{C}] 来匹配这些字符,不幸的是它匹配制表符空格和换行符。请提供(有效的正则表达式模式)解决方案来解决这个问题。

【问题讨论】:

  • 我们使用 [\p{C}|\t|\r\n]* 不工作
  • 我们也试过 [^P\{Cc}\t\r\n] 但没有成功

标签: java regex control-characters


【解决方案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]

【讨论】:

  • 您好,我们尝试过,但也删除了制表符空格和换行符。任何建议
  • 您的示例输入字符串是什么?
  • java to Way to Project 测试,包含控制字符、制表符空格和换行符;前有问题图片
  • 我发布了一个示例代码,它没有删除标签或任何空格。
  • 我们有一些不同的场景,所以代码不会被改变,只有正则表达式模式需要'找到有效的 (utf-8) 代码点,Matcher.match 应该返回 true if(no control characters) false if(仅限控制字符)
猜你喜欢
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-21
  • 1970-01-01
  • 2016-07-14
相关资源
最近更新 更多