Ios 目标C:Regex 2不同的输入可能性

Ios 目标C:Regex 2不同的输入可能性,ios,objective-c,regex,input,Ios,Objective C,Regex,Input,我有一个输入表单,它应该接受两个不同的输入表单并验证它们 第一个应该是数字输入,以两个77开头,然后是0到9之间的其他数字。总长度可以是13 i、 e:77XXXXXXXXXX 第二种输入形式是3位数字[0-9],后面是一个点,然后是3个数字。这可以重复总共12个数字 i、 e.XXX.XXX.XXX.XXX 第二部分工作-->“[0-9]{3}(?:[0-9]{3}){3}$” 由于某种原因,第一部分不起作用-->“7{2}[0-9]{13}” E:经过一些测试,我发现只有第二个测试得到验证。

我有一个输入表单,它应该接受两个不同的输入表单并验证它们

第一个应该是数字输入,以两个77开头,然后是0到9之间的其他数字。总长度可以是13

i、 e:77XXXXXXXXXX

第二种输入形式是3位数字[0-9],后面是一个点,然后是3个数字。这可以重复总共12个数字

i、 e.XXX.XXX.XXX.XXX

第二部分工作-->
“[0-9]{3}(?:[0-9]{3}){3}$”

由于某种原因,第一部分不起作用-->
“7{2}[0-9]{13}”

E:经过一些测试,我发现只有第二个测试得到验证。
有没有建议将这两项检查结合起来?如果不是一个,则检查另一个。

将此用于第一部分:

^77\d{11}$
第二部分:

^\d{3}(?:\.\d{3}){3}$

总长度可以是13

最后必须使用11,因为未知数字的数目是11:

"7{2}[0-9]{11}"
请注意,第二部分的正则表达式“有效”,但不太有效,例如,它解析的更多:在正则表达式中,
被视为一个jolly字符,因此它匹配

"346m111o555m333"
还有,你所说的“可以是13”或“可以重复”是什么意思?不能吗?因为如果没有,你的正则表达式也不会起作用

您可以改为使用此选项:

"77\d{11}"
第一部分

"\d{3}(?:\.\d{3}){3}"
对于第二个

修复了它:

“(7{2}[0-9]{11}|([0-9]{3}(?:[0-9]{3}){3}$)|([0-9]{12})”

第一部分匹配以77开头的数字,后面是0-9之间的数字,最多13位

第二部分检查XXX.XXX.XXX.XXX,最后一部分检查相同的内容,但不包括。介于两者之间

所有其他输入都会抛出错误(至少在此处)


谢谢大家

为未通过正则表达式测试的第一部分提供示例输入。输入将为7770093450509。第三个7就在这个例子中,不一定在其他例子中。好的,总长度可以是13。所以它最多可以有13个数字,对吗?它也可以少于13个?是的,请澄清“可以是13个”和“可以重复总共12个数字”。第一个不工作的部分由12个数字组成,中间没有任何点。我开始工作的另一部分共有13个数字,数字之间有3个点。