我有一个验证 14 个字符长度的正则表达式。 但现在我想验证它是否可以乘以 2 的长度。
我当前的正则表达式是 "(0[0-1][0-9][0-9][0-9][0-9]0[0-2]0[0-4] 0[0-2]0[0-2])"
它只接受 14 位长度的字符串
match : `00000002000102 00000002000101`
do not match : `00 , 0000 , 00000200,`
我想接受上面的这些也不匹配字符串。
我在下面向你解释了我想做什么
已编辑:
这里我再说明一下我的要求
看到我的字符串长度是 14 位数字,现在在我的字符串中前 2 位数字是强制性的。 我的字符串有 6 个不同的验证部分,我将在下面提到。
first part would be : 00 or 01 only : Sting length should be 2 only
second part would be : 0000-9999 any value between this. : Sting length should be 6 only
third part would be : 00 or 02 only : Sting length should be 8 only
fourth part would be : 00 or 01 or 04 only even not 03.: Sting length should be 10 only
fifth part would be : 00 or 01 or 02 : Sting length should be 12 only
sixth part would be : 00 or 01 or 02 : Sting length should be 14 only
- 所以在这里,当我的输入字符串包含必填的第一部分时。
- 如果包含第 2 部分,则第 1 部分和第 2 部分是强制性的 both 和 both 部分都应按照上述验证进行验证。
- 如果字符串包含第 3 部分也意味着它的长度应该是 8 和它的 包括第一部分和第二部分然后它将强制验证 第一、二、三部分按上述条件
- 如果字符串包含第 4 部分也意味着它的长度为 10 并且它包含 第一、第二和第三部分然后它将强制验证 第一、二、三、四部分也按上述条件
- 同上继续第 6 部分。
请帮助我,让我知道在我当前的 reg ex 实现中我必须改变什么
谢谢
最佳答案
编辑:响应编辑问题中的规范:
像这样;现在这真的是你的功课 ;)
^(0[0-1](?:[0-9]{4}(?:0[02](?:0[014](?:0[0-2](?:0[0-2])?)?)?)?)?)$
关于java - 如何验证正则表达式中的可选子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14037007/