我需要检查我们发送到commzgate(第三方)的JAVA字符串是否为SMS但我们的SMS失败,因为我们的字符串包含一些无效/不可读的字符,我需要先检查。基本上我需要在java中进行正则表达式检查,以验证我的字符串是否包含以下字符: -
€[\] ^ {| }〜
任何建议!此外,当我尝试将这些字符放在我的java文件中时,它不会在eclipse中保存并提示非utf8字符消息,因此每次我必须删除€并保存。是这样,我的验证不完整。 感谢
答案 0 :(得分:1)
您似乎在问题中包含了答案 - 您可以使用正则表达式检查这些字符,并根据需要替换/删除它们。当您在非UTF-8字符(欧元符号)上遇到Eclipse问题时,您可以改为使用unicode字符U+20AC
(应该是它)。
答案 1 :(得分:0)
正则表达式为/[€\[\]\{\}\~]/g
你可以做得更简单,但这个工作
例如在js
中var a = "€[]{}^|~"
var reg = /[€\[\]\{\}\~|^]/g
a.replace(reg, "") //output ""
答案 2 :(得分:0)
简单地使用:
^[^€\\[\\]\\^{|}~\\\]*$
// € [ ] ^{|}~ \ < literals
匹配字符串的开头和结尾,任何字符(或无),只要它们不在(转义的)字符类中。此处字符类中的^
表示它应该不匹配。
请注意双转义字符,因为Java也需要对文字字符进行转义。