Поднятие определенных слов в сообщении SWIFT

У меня есть следующее выражение регулярного выражения:

(?<=[^:]:)?([a-zA-Z]{6}\w[a-zA-Z]{4})

Который ищет каждый экземпляр кода SWIFT BIC.

SWIFT-код состоит из 8 или 11 символов. Когда указан 8-значный код, он относится к основному офису.

  1. Первые 4 символа - код банка (только буквы)
  2. Следующие 2 символа - код страны ISO 3166-1 alpha-2 (только буквы)
  3. Следующие 2 символа - код местоположения (буквы и цифры) (пассивный участник будет иметь "1" во втором символе)
  4. Последние 3 символа - код филиала, необязательно ("XXX" для основного офиса) (буквы и цифры)

Поэтому, учитывая приведенные выше элементы списка и мое выражение регулярного выражения, я пытаюсь извлечь из этой примерной строки все данные BICS. Снимок экрана показывает, что я смотрю, правильно и неправильно.

Наверху видно, что меня там нет. Мне нужно только отодвинуть это:

  • BARCGB2LXXX
  • BARCGB2LXXX
  • HSBCGB2LXXX
  • HSBCGB2LXXX
  • RBOSGB2RTCM
  • SABCIR2HXXX

РЕДАКТИРОВАТЬ

Возможно, может быть лучше количественно определить, что это регулярное выражение предназначено для использования в приложении.NET

1 ответ

Предполагая, что код находится в конце каждой строки, это будет работать:

[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$

демо здесь

Другие вопросы по тегам