如何禁止这些字符€[\] ^ {|在一个java字符串中

时间:2014-11-20 15:57:55

标签: java regex utf-8

我需要检查我们发送到commzgate(第三方)的JAVA字符串是否为SMS但我们的SMS失败,因为我们的字符串包含一些无效/不可读的字符,我需要先检查。基本上我需要在java中进行正则表达式检查,以验证我的字符串是否包含以下字符: -

€[\] ^ {| }〜

任何建议!此外,当我尝试将这些字符放在我的java文件中时,它不会在eclipse中保存并提示非utf8字符消息,因此每次我必须删除€并保存。是这样,我的验证不完整。 感谢

3 个答案:

答案 0 :(得分:1)

您似乎在问题中包含了答案 - 您可以使用正则表达式检查这些字符,并根据需要替换/删除它们。当您在非UTF-8字符(欧元符号)上遇到Eclipse问题时,您可以改为使用unicode字符U+20AC(应该是它)。

regular expression java

答案 1 :(得分:0)

正则表达式为/[€\[\]\{\}\~]/g 你可以做得更简单,但这个工作

例如在js

var a = "€[]{}^|~"
var reg = /[€\[\]\{\}\~|^]/g
a.replace(reg, "") //output ""

答案 2 :(得分:0)

简单地使用:

^[^€\\[\\]\\^{|}~\\\]*$
// €  [  ]  ^{|}~  \    < literals

匹配字符串的开头和结尾,任何字符(或无),只要它们不在(转义的)字符类中。此处字符类中的^表示它应该匹配。

请注意双转义字符,因为Java也需要对文字字符进行转义。