【发布时间】:2015-04-23 21:16:40
【问题描述】:
新的 Mercosul 车牌有以下规则:
- 必须有 7 个字母数字,其中:
- 4 是字母 (A-Z)
- 3 是数字 (\d)
- 字母和数字无论如何都可以洗牌。
所以以下文本有效:AB123CD、1A2B3CD、123ABCD、ABCD123
这些是无效的:ABC1234D、ABCDE12、ABC123 等
我知道我可以通过只检查字符串大小和计数数字和字母的代码来实现这一点,但是这个问题让我想知道这是否也可以通过正则表达式来实现。
我能想到的就是生成所有可能性,例如 (\d{3}[A-Z]{4}) , (\d{2}[A-Z]{4}\d) 并使用 |加入他们,考虑到大量的组合,这根本不实用,还有其他想法吗?或者这只是 Regex 不可行的一种情况?
回答后编辑:
正如@stribizhev 所发布的,这是一个典型的前瞻用例。
我发现这个link 是一个非常有用的来源
和here's an example 了解如何使用环视方法执行密码验证
【问题讨论】: