正则表达式在java匹配数字,几个特殊字符和字母表

时间:2018-05-27 06:43:53

标签: java regex

我的电话号码可以包含以下值:

• Digits: 0-9
• Special character: "#", "*", "-", "_", " ", "(", ")", "+", "?"
• Alphabets: "x", "X"

以上这些可能不止一次在电话号码中。 如果上面列出的任何其他值/字符出现,它应该失败。我尝试创建正则表达式,但它失败了消息"悬空元字符' *'"。

以下是正在尝试的正则表达式:

 if(!str.matches("([0-9]*|*|#|(|)|?|+|_|-)"))
   {
       System.out.println("--not matched--");
   }

请帮我创建上面的正则表达式。

1 个答案:

答案 0 :(得分:1)

您需要转义字符*+?,因为它们具有正则表达式含义。

您还需要转义\因为您使用java,所以请尝试

str.matches("([0-9]*|\\*|#|\\(|\\)|\\?|\\+|_|-)")