Regex 正则表达式检查数值长度

Regex 正则表达式检查数值长度,regex,Regex,我想验证5位或9位的zipcode。 我写了这个/^(\d){5 | 9}$/,但它与任何内容都不匹配 但是当我给/^(\d){5}$/正确匹配5时 请帮助。以下正则表达式应该可以工作 ^(\d{5}|\d{9})$ 将最后四个选项设置为可选: ^\d{5}(\d{4})?$ 注意,我删除了开头/结尾斜杠,因为它们与正则表达式没有任何关系;它们是一种应用程序语言制品。与USPS ZIP+4相匹配 如果您使用的是美国邮政局的ZIP+4格式,则此正则表达式可能提供更精确的匹配: egrep -o

我想验证5位或9位的zipcode。 我写了这个
/^(\d){5 | 9}$/
,但它与任何内容都不匹配

但是当我给
/^(\d){5}$/
正确匹配5时


请帮助。

以下正则表达式应该可以工作

^(\d{5}|\d{9})$

将最后四个选项设置为可选:

^\d{5}(\d{4})?$
注意,我删除了开头/结尾斜杠,因为它们与正则表达式没有任何关系;它们是一种应用程序语言制品。

与USPS ZIP+4相匹配 如果您使用的是美国邮政局的ZIP+4格式,则此正则表达式可能提供更精确的匹配:

egrep -o '\b[[:digit:]]{5}-?[[:digit:]]{4}?\b'
语料库 这个正则表达式在有限的语料库中进行了测试。您的里程可能会有所不同

cat << EOF | egrep -o '\b[[:digit:]]{5}-?[[:digit:]]{4}?\b'
    12345
    123456789
    12345-6789
EOF

猫也有同样的答案。。。但我只是想提交一个提示。。非常适合在线测试大多数正则表达式。好的,但我正在测试我的正则表达式