我的电话号码可以包含以下值:
• Digits: 0-9
• Special character: "#", "*", "-", "_", " ", "(", ")", "+", "?"
• Alphabets: "x", "X"
以上这些可能不止一次在电话号码中。 如果上面列出的任何其他值/字符出现,它应该失败。我尝试创建正则表达式,但它失败了消息"悬空元字符' *'"。
以下是正在尝试的正则表达式:
if(!str.matches("([0-9]*|*|#|(|)|?|+|_|-)"))
{
System.out.println("--not matched--");
}
请帮我创建上面的正则表达式。
答案 0 :(得分:1)
您需要转义字符*
,+
,?
,因为它们具有正则表达式含义。
您还需要转义\
因为您使用java,所以请尝试
str.matches("([0-9]*|\\*|#|\\(|\\)|\\?|\\+|_|-)")