如何在此正则表达式中允许小写后置代码?

时间:2014-07-24 14:24:45

标签: regex devexpress

这是我用来验证英国邮政编码的正则表达式。

它很好用,除了它只允许大写后代码:

WA1 6EU有效,wa1 6eu不是 - 但它应该是!

如何使表达式不区分大小写?

^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$

更新:我正在使用DEVXPRESS asp.net控件,它在某些控件上可以使用正则表达式验证。 : 目前不允许使用不区分大小写的密钥:http://www.devexpress.com/Support/Center/Question/Details/Q500302

我修改了下面建议的表达式,但现在大写的邮政编码无效 - 它们之前是:

^([A-PR-UWYZ0-9][a-pr-uwyz0-9][A-HK-Y0-9][a-hk-y0-9][AEHMNPRTVXY0-9][aehmnprtvxy0-9]?[ABEHMNPRVWXY0-9][abehmnprvwxy0-9]? {1,2}[0-9][ABD-HJLN-UW-Z][abd-hjln-uw-z]{2}|GIR 0AA)$

2 个答案:

答案 0 :(得分:2)

您只需启用不区分大小写的标记i

即可

将表达式包装为:

/yourexpression/i

http://regex101.com/r/uX5rK9/1

上查看

或者您可以在将字符串传递给RegExp引擎之前使用ToUpperCase()

修改

如果您无法设置不敏感的匹配

,那么这个应该可行

^([A-Pa-pR-Ur-uWwYyZz0-9][A-Ha-hK-Yk-y0-9][AaEeHhMmNnPpRrTtVvXxYy0-9]?[AaBbEeHhMmNnPpRrVvWwXxYy0-9]? {1,2}[0-9][AaBbD-Hd-hJjLlN-Un-uW-Zw-z]{2}|(G|g)(I|i)(R|r) 0[Aa]{2})$

http://regex101.com/r/yG4xD5/1

上查看

答案 1 :(得分:0)

选项1:将[A-PR-UWYZ0-9]更改为[A-PR-UWYZa-pr-uwyz0-9],将其他[...]更改为{{1}}。无论发动机如何,这都有效。

选项2:打开正则表达式引擎忽略大小写标志。您没有使用编程语言标记您的帖子,因此我们无法告诉您如何执行此操作,因为它因语言而异。