2013-11-03 28 views
1

之间。当我想测试,如果输入的字符串长度至少为10,最多长13,我用这个模式:[0-9]{10,13}正则表达式匹配长度之一,但没有在

但你会如何测试是否字符串长度是10或13,两者之间没有任何内容?

编辑:我看到两个主要的解决方案:

1)使用长度1或长度2 2)使用长度1 +(长度2的可选人物 - 长度1)

只是想知道:有没有之间的任何性能差异二?

+0

嗯,这是很难定义的搜索字符串像这样的问题。 –

+0

@still_learning很好的发现:) – HamZa

+0

@ArmanBimatov你可能会检查这[问题](http://stackoverflow.com/questions/3470990/is-micro-optimization-worth-the-time/3471356#3471356)出来,这[鸣叫](https://twitter.com/ircmaxell/status/370993140628344833):) – HamZa

回答

2

另一种选择是

^[0-9]{10}(?:[0-9]{3})?$ 

regex101 demo

+0

不要撕掉重复的解决方案,你有权力关闭它作为重复:) – HamZa

+0

@HamZa对不起,但我甚至没有看到重复的帖子或答案。我试图构建我的解决方案。如果你认为没关系,如果你还没有好的话。它可能只是巧合。其他4个答案类似,实际上相同,并不意味着他们已经彼此复制! – jkshah

+0

我删除了我的答案,因为所有人都用几乎相同的答案溢出了问题,您找到的答案不相似,如果您自己找到答案,我发现它很有创意。但不要忘记“清理”stackoverflow。好吧,你不是“强迫”,只是建议... – HamZa

1

使用这种表达^((?:\d{3}){3,4}\d)$

+0

实际上,如果你测试它,它会返回12345678901(这是11个字符)的真实 –

+0

修复它,请再试一次 – bukart

相关问题