【问题标题】:Remove illegal characters from file in notepad++ or java从记事本++或java中的文件中删除非法字符
【发布时间】:2018-07-12 10:56:56
【问题描述】:

我有一个巨大的文件,该文件包含很多非法字符,如下图所示,但这些还不是全部。它们有许多不同的种类,因此不可能全部搜索并替换它们。 有没有办法可以删除这些字符。我尝试了很多解决方案,比如转换为 ANSI 或一些正则表达式,但它们没有用。请帮忙。

编辑:即使有人可以告诉我如何在 java 中删除这些字符,那也很好。

【问题讨论】:

  • 点击此链接查看如何在 Java 中执行此操作:howtodoinjava.com/regex/…
  • 基本思想是你需要使用Unicode字符范围。这可能也可以在 Notepad++ 中完成,尽管我从未亲自做过。
  • @Tim 非常感谢先生。像魅力一样工作,它被完美解析。

标签: java notepad++


【解决方案1】:

如果您知道您期望的字符类型,那么实施白名单过滤器会更容易,而不是删除特定字符。

按照this answer, which explains how to remove emoticons你可以试试:

String characterFilter = "[^\\p{L}\\p{M}\\p{N}\\p{P}\\p{Z}\\p{Cf}\\p{Cs}\\s]";
String emotionless = aString.replaceAll(characterFilter, "");

要了解哪些\p{} 组可用,请查看Classes for Unicode scripts, blocks, categories and binary properties docs

\p{IsLatin} 拉丁文字字符(script)

\p{InGreek} 希腊语块(block)中的一个字符

\p{Lu} 大写字母(类别)

\p{IsAlphabetic} 字母字符(二进制属性)

\p{Sc} 货币符号

\P{InGreek} 希腊语块中除一个以外的任何字符(否定)

[\p{L}&&[^\p{Lu}]] 除大写字母外的任何字母(减法)

【讨论】:

  • @Tim Biegeleisen 的回答为我解决了问题,谢谢
猜你喜欢
  • 2016-03-08
  • 2017-01-21
  • 1970-01-01
  • 2018-09-03
  • 1970-01-01
  • 2010-12-27
  • 1970-01-01
  • 1970-01-01
  • 2015-11-19
相关资源
最近更新 更多