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}
Другие вопросы по тегам