java冒号分隔值正则表达式验证
诚然,我不是正则表达式专家,但我想验证输入字符串,为各种验证编写if/else语句并不是实现这一点的方法。我在用Java
输入将以冒号(:)分隔的三个值的元组的形式出现。第一个值将是一个整数(就大小/长度而言可能是一个长值),另外两个值可以是数字或字符串
例如,以下值将是有效的:
- 1:x:456
- 2:2:3
- 3:abc:123
。。而这些不会:
- x:1:2
- 1:2
- 1:3:x
- 1:2
- fyz::2:1
- 1:3:3
是否有一种相对简单的方法可以使用正则表达式验证此输入
# 1 楼答案
匹配
Numbers:(letters OR numbers):(letters OR numbers)
如果您希望第二部分和第三部分只能是数字或字母,可以使用以下模式:
基本上,它会寻找一个数字序列(
\\d+
),然后是一个重复两次的字符序列::
开头,后跟^
和$
字符是锚,意思是“字符串的开始”和“字符串的结束”例如:
匹配
Numbers:(both letters and numbers:(both letters and numbers)
为此,您可以使用以下模式:
哪一个匹配:
这个例子将匹配