找出Java中的特殊字符

时间:2013-08-06 04:20:58

标签: java regex string

我的要求是'以下字符不允许使用值名称:

 [ $ & + , / : ; =? @ " < > # % { } | \ ~ ^ [ ] ` ] '

我使用过这样的东西,

Pattern pattern = Pattern.compile("[\"\\.&,@!?#%'$()/\\\\ \\-_<>]+$");
Matcher matcher = pattern.matcher(keyName);

其中keyName是一个String,我从中搜索存在特殊字符

任何人都可以为Java Pattern-Matcher提供Regex吗? 提前谢谢

2 个答案:

答案 0 :(得分:3)

而不是匹配许多特殊字符。只需检查单词是否包含任何非字母数字字符。像这样:

  String term = "Hello-World";
  Pattern p = Pattern.Compile(".*\\W+.*");
  Matcher m = p.Matcher(term);

或者您也可以使用:

 String term = "Hello-World";
 Pattern p = Pattern.Compile("[^A-Za-z0-9]");
 Matcher m = p.Matcher(term);

答案 1 :(得分:1)

只需列出字符类([...])内的字符,并根据需要进行转义。由于这听起来像是一项学校作业,我不打算用勺子喂它。请注意,您可能需要双重转义某些字符。 (正则表达式要求\转义为\\,但要将\\转换为Java中的正则表达式,则需要使用"\\\\"。)

顺便说一下,您的列表中似乎有两个字符([])两次。