Здесь есть некоторые реальные несоответствия. Regex, который вы предоставили ^([a-zA-Z]\d[a-zA-z]()?\d[a-zA-Z]\d)$
, соответствует тому, что было указано Скоттом относительно правильного канадского формата. Однако приведенные вами примеры не соответствуют формату B1C C1B or B1CC1B
.
Чтобы добавить оскорбление к травме, регулярное выражение, которое вы предоставили, работает с соответствующим канадским форматом. Поэтому нет никаких реальных причин для его изменения. Я имею в виду, я бы изменил его на это ^([a-zA-Z]\d[a-zA-Z]\s?\d[a-zA-Z]\d)$
, так что одно пространство не сгруппировано, но это только я.
Однако, насколько его использования, он может быть использован в C# как это:
var matches = Regex.Match(inputString, @"^([a-zA-Z]\d[a-zA-Z]()?\d[a-zA-Z]\d)$");
if (!matches.Success) {
// do something because it didn't match
}
и теперь, когда он был помечен VB.NET:
Dim matches = Regex.Match(inputString, "^([a-zA-Z]\d[a-zA-Z]()?\d[a-zA-Z]\d)$")
If Not matches.Success Then
' do something because it didn't match
End If
Что вы пробовали? С чем вы столкнулись? – SLaks
Это C#, а не VB.NET, но я ожидаю, что это переведёт: http://stackoverflow.com/questions/1146202/canada-postal-code-validation – Rup
Если это единственные три значения, которые вы ожидаете, что не так с 'B1C | C1B | B1CC1B' regex? – dasblinkenlight