检查非标准字符的字符串

时间:2018-05-10 17:37:06

标签: java json regex design-patterns matcher

我试图找到json文件中的所有非标准字符。但是,我真的不知道Pattern.compile(...)方法的正则表达式语法,足以指定我想要的内容。基本上,我希望它返回任何不是字母,数字,“[”,“{”,“:”,“\”“,”,“,”_“,”(“,” - “, “。”,“\”,“/”

我只想打印出带有特殊字符的线条。

代码如下所示:

sudo apt-get update 

1 个答案:

答案 0 :(得分:0)

这是你可以尝试的正则表达式:

[^\p{L}\p{N}\[\]{}:",_().\\/-]

一些注意事项:

  • \p{L}匹配所有语言中的所有unicode字母。如果您只关心英文字母,请替换为A-Za-z
  • 同样,\p{N}匹配所有unicode数字符号。如果您只关心拉丁字母中的数字,请替换为0-9
  • []\需要通过前面的\进行转义,因为它们在正则表达式中本身具有特殊含义。
  • 同样适用于-,但最后将其放在最后并不需要转义。

然后,为了将其表达为Java字符串常量,您需要担心Java字符串语法中具有特殊含义的字符:"\。因此,必须在Java代码中转义正则表达式中"\的所有出现:

"[^\\p{L}\\p{N}\\[\\]{}:\",_().\\\\/-]"