我在为电话号码编写正则表达式时遇到了一些麻烦。 (对他们来说还不太好)
该号码可能只包含:0-9,+,/,.,-, ,(,)
我在想:
@Pattern(regexp = "(0-9+/\\.\\- \\(\\))?")
但是当我输入100时,这已经在抱怨。
答案 0 :(得分:3)
试试这个正则表达式[0-9\.\-\s+\/()]+
但根据你的解释,因此我的正则表达式也允许+++
或单个空格或类似的东西,这是你想要的吗?
编辑:所以最好使用以下内容:([\.\-\s+\/()]*[0-9][\.\-\s+\/()]*){8,15}
这需要至少8-15个数字,并允许其他字符出现在它们之间。
答案 1 :(得分:0)
您需要使用方括号创建一个字符类。
[0-9+/. ()-]+
这意味着匹配类内部的任何字符一次或多次(因为最后的量词+
)
但是这会匹配任何顺序中的字符,例如“......”会匹配。
你的正则表达式(0-9+/\\.\\- \\(\\))?
表现得这样:
匹配“0-”然后是一系列9,然后是“/.-()”。由于在周围括号之后的?
,整个模式是可选的,即它也匹配空字符串。
答案 2 :(得分:0)
我认为你想要"[-0-9+/. ()]+"
- 在[]
内处理特殊字符的方式不同,处理-
的最佳方法是将其放在第一位。
答案 3 :(得分:0)
@Pattern(regexp = "^[0-9+/. ()-]+$")
答案 4 :(得分:0)
正确的模式:^[\d\/\(\)\- \.]+$
通过拆分正则表达式,您可以看到:
^ #Won't match if it doesn't start at the beginning
[ #The character can contain...
\d #digits
\/ #slash
\( #brackets (open)
\) #brackets (close)
\- #hyphen
#space (\s is also possible but can be tab too)
\. #or a dot
]
+ #The character can be repeated
$ #Won't match if it doesn't reach the end