IBAN Regex для включения пробелов и тире
Я пытаюсь создать регулярное выражение, которое позволит / зарегистрировать номер IBAN, даже если он содержит тире или пробелы.
EX. Греция IBAN #
GR1601101250000000012300695
Греция IBAN Regex
GR\d{2}\d{4}\d{3}\w\w{4}\w{4}\w{4}\w{3}
Я хочу объединить эти три (3) регулярных выражения в одно (1) регулярное выражение:
GR\d{2} \d{4} \d{3}\w \w{4} \w{4} \w{4} \w{3}
(пространства)
GR\d{2}\d{4}\d{3}\w\w{4}\w{4}\w{4}\w{3}
(без пробелов, без черточек)
GR\d{2}-\d{4}-\d{3}\w-\w{4}-\w{4}-\w{4}-\w{3}
(тир)
Это возможно?
Буду очень признателен за любую помощь, которую может оказать каждый. Спасибо!
1 ответ
В зависимости от того, на каком языке вы говорите, вы можете сделать что-то более сложное, но самый простой способ - просто использовать чередование:
GR\d{2}( \d{4} \d{3}\w \w{4} \w{4} \w{4} \w{3}|\d{7}\w{16}|-\d{4}-\d{3}\w-\w{4}-\w{4}-\w{4}-\w{3})
Например, с помощью регулярных выражений в стиле Perl или C# вы можете запомнить и сослаться на совпадение:
GR\d{2}(?<sep>[ -]?)\d{4}\k<sep>\d{3}\w\k<sep>\w{4}\k<sep>\w{4}\k<sep>\w{4}\k<sep>\w{3}