这两条规则的正则表达式

时间:2013-06-12 09:01:52

标签: sql regex oracle

我已经写了这个正则表达式来验证2条规则。

规则1:

数字应该是10-11个字符,位置1-9为数字,10个字母,11个可以是'

规则2:

数字应该在7到12个字符之间,其中第一个位置应为alpha;位置2到4可以是任意一个,位置5到12可以是'

^{7,12}[1-9]{2,12}[A-Z0-9]{1,12}'

这是正确的吗?

2 个答案:

答案 0 :(得分:3)

首先,您要允许这两个规则并忽略大小写/i

^(rule1|rule2)$/i

第一条规则:

\d{9}     # 9 digits
[a-z]     # one alpha
[0-9a-z]?  # last is optional and can be either

第二条规则:

[a-z]         # position one
[0-9a-z]{6,11} # remaining with value either, 6 to 11 characters

结果:

^(\d{9}[a-z][0-9a-z]?|[a-z][0-9a-z]{6,11})$/i

答案 1 :(得分:0)

试试这个正则表达式:

^(\d{9}[a-zA-Z][a-zA-Z0-9]?|[a-zA-Z][a-zA-Z0-9]{6,11})$

Live Example