【发布时间】:2017-02-23 08:47:39
【问题描述】:
对于学校作业,我试图确定用户在输入卡号时所拥有的信用卡类型。主卡以 51-55 开头。该数字前面的额外零将被视为有效。我已经查看了有关如何将其集成到 python 中的其他线程,虽然我可以复制和粘贴代码,但我仍然不明白发生了什么或它们如何绕过前面的零?
以下是执行此操作的 Master 卡代码示例:
^5[1-5][0-9]{5,}|222[1-9][0-9]{3,}|22[3-9][0-9]{4,}|2[3-6][0-9]{5,}|27[01][0-9]{4,}|2720[0-9]{3,}$
谁能向我解释发生了什么事?感谢您的时间。
【问题讨论】:
-
任何与理解此处给出的代码相关的问题都是正则表达式问题,根本不是 Python 问题。
-
...而且,错误,您在此处提供的内容没有绕过前面的零。不过,这样做很容易——在你的模式的开头放一个
^0*(以适用于每个分支的方式),你就完成了。 -
(它也只锚定在开始和结束分支上,这几乎肯定是错误的;我绝不建议相信这段代码——无论你从哪里得到它——实际上是正确的)。
-
@CharlesDuffy 谢谢!!!对不起,我仍然是一个菜鸟,我很感激。
-
对于学校作业,如果他们没有覆盖
regex,那么你不应该使用regex。无论如何,这只是模式,而不是真正使用该模式的正确 Python 代码。
标签: python credit-card