[英]String validation in java using regex
我必须验证一组字符串并对其进行处理。 可接受的格式为:
1/2
12/1/3
1/23/333/4
用于验证的代码是:
if (str.matches("(\\d+\\/|\\d+){2,4}")) {
// do some stuff
} else {
// do other stuff
}
但是它将匹配带有或不带有斜杠的任何整数,我想排除不带有斜杠的整数。如何仅匹配有效模式?
看来您想查找number
带有一个或多个 /number
number
(一个或多个数字的序列- \\d+
)。 如果是这种情况,那么您可以将正则表达式写为
\\d+(/\\d+)+
你可以试试
(\d+/){1,3}\d+
digits followed by / one to three times----^^^^^^ ^^------followed by digit
样例代码:
System.out.println("1/23/333/4".matches("(\\d+/){1,3}\\d+")); // true
System.out.println("1/2".matches("(\\d+/){1,3}\\d+")); // true
System.out.println("12/1/3".matches("(\\d+/){1,3}\\d+")); // true
模式说明:
( group and capture to \1 (between 1 and 3 times):
\d+ digits (0-9) (1 or more times)
/ '/'
){1,3} end of \1
\d+ digits (0-9) (1 or more times )
\\b\\d+(/\\d+){1, 3}\\b
\\ b是单词边界。 这将匹配所有带有1-3斜杠的标记,斜杠被数字包围,而令牌被单词边界包围。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.