【发布时间】:2013-12-27 06:06:10
【问题描述】:
我正在自学正则表达式,并找到了一个测验网站,该网站一直在帮助我找到更多适用于它们的应用程序,并帮助我扩展我对它们工作原理的了解。
我发现一个问题要求我形成一个正则表达式来匹配 3 的倍数的 10 位数字。我能想到的唯一方法是让正则表达式识别数字的值并能够以数学方式操纵它们。这怎么可能?
换句话说,什么正则表达式匹配
0003
0006
0351
1749
但不匹配
0005
0011
0361
4372
【问题讨论】:
-
是 regex.alf.nu 吗?这个谜题有一个正则表达式,它并不完全依赖于数字的多样性,我相信这将是最短的正则表达式。否则,您可以查看this site。
-
这实际上是针对 regex.alf.nu 的。我尝试使用 hobbs 的解释来解决问题,最终得到了比 wcp 更强大的东西,但仍然是错误的。阅读您的(杰瑞)链接帮助我注意到我忽略了复杂的 mod 0 案例。花了我一段时间,但我找到了。谢谢大家!
-
整洁!如果您将通用正则表达式用于三的倍数,它应该可以工作。也许您忘记使用锚点
^$来确保检查整个字符串?
标签: regex string-matching digit