用于邮政编码的正则表达式 - 允许

时间:2013-12-02 12:10:11

标签: java regex

这是我的邮政编码正则表达式

^[a-zA-Z0-9]{1,9}$

但不允许A-12345。如何更改-也将被允许的正则表达式?

2 个答案:

答案 0 :(得分:3)

在字符集(-)的开头或结尾添加[...]

^[-a-zA-Z0-9]{1,9}$

为什么在开头或结尾?:如果将-作为第一个或最后一个字符放置,它将按字面匹配-而不是匹配范围字符。

答案 1 :(得分:2)

试试这个:

^[a-zA-Z0-9-]{1,9}$

这将匹配由1到9个拉丁字母,十进制数字或连字符组成的字符串。如果您使用CASE_INSENSITIVE标志,则可以将其简化为:

^[a-z0-9-]{1,9}$