Regex 带通配符的多个邮政编码的正则表达式
我必须验证一个逗号分隔的邮政编码列表,如“95123,95%,95222,95%-8_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuRegex 带通配符的多个邮政编码的正则表达式,regex,Regex,我必须验证一个逗号分隔的邮政编码列表,如“95123,95%,95222,95%-8_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 我有一个正则表达式^\d{5}(?\d{4})(,\d{5}(?\d{4})*)*$可以获得没有下划线和百分比字符的有效拉链。如何修改正则表达式以处理示例字符串?为什么不将字符串拆分为逗号,然后在每个邮政编码上使用正则表达式?只要您不太担心验证: (?:^|,\s*)([0-9\x25_]{1
我有一个正则表达式^\d{5}(?\d{4})(,\d{5}(?\d{4})*)*$可以获得没有下划线和百分比字符的有效拉链。如何修改正则表达式以处理示例字符串?为什么不将字符串拆分为逗号,然后在每个邮政编码上使用正则表达式?只要您不太担心验证:
(?:^|,\s*)([0-9\x25_]{1,5}(?:-[0-9\x25_]{1,4})?)
这应该满足您的需要,只需执行“全部匹配”即可获得每个条目
注意:我不会做任何检查来确保他们有足够的数字(比如无效123\u或%2\uu-\uu23例如,如果
\u
只表示“1个字符”)这是个好问题。这是因为我的验证器使用正则表达式(regex),而绕过它将比获得一个合适的正则表达式(我希望)要做更多的工作。谢谢,就快到了。如果用户输入“12345,12%”,则正则表达式应匹配。如果他们输入“12345-1”或“95”,则不应输入。在expresso中,正则表达式匹配无效的zip格式。此正则表达式非常接近。它唯一没有做的就是允许%作为zip^(([\d\x5F]{5})|([\d\x5F]{1,4}\x25))([\d\x5F]{4})|([\d\x5F]{1,3}\x25))\s*,\s*([\d\x5F]{5})([\d\x5F]{1,4}\x25])([\d\x5F]{4}{4}){d\x5F*)$