繁体   English   中英

1组的VB.NET Regex匹配5和10个字符的邮政编码

[英]VB.NET Regex Match 5 and 10 char Zip Code in 1 Group

我正在使用此代码

(\d{5})([\-]\d{4})?\s*

哪个与我的邮递区号相符

12345-1234

2组

1. 12345
2. -1234

我需要它来匹配1个单一组中的12345(5个字符)和12345-1234(10个字符)。 那可能吗?

编辑:

(\d{5}-\d{4}|\d{5})

(感谢vcsjones)满足了原始问题。

但是,如果邮编格式错误(例如12345-123),它不会只检索12345。

有什么办法吗?

您可以尝试一下:

(\d{5}-\d{4}|\d{5})

编辑:

但是,如果邮编格式错误(例如12345-123),它不会只检索12345。

你确定吗? 这将产生一个匹配:

Dim zip5 As String = "12345"
Dim zip9 As String = "12345-6789"
Dim partialZip9 = "12345-33"
Dim regex As New Regex("(\d{5}-\d{4}|\d{5})")
Dim zip5Match = regex.Match(zip5).Groups(0).Value 'Produces 12345
Dim zip9Match = regex.Match(zip9).Groups(0).Value 'Produces 12345-6789
Dim partialZip9Match = regex.Match(partialZip9).Groups(0).Value 'Produces 12345

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM