Как говорит @Davidpostill, ваш вопрос требует большего уточнения, потому что это зависит от языка программирования / сценариев.
Но если вы использовали его через regex101.com как онлайн.
Я скопировал это в поле ввода.
G18.RZBB.9155.0123.4567
BG18 RZBB 9155 0123 4567
BG18RZBB91550123456789
BG18-RZBB-9155-0123-4567
И ввел ваше регулярное выражение с некоторыми изменениями.
B*G\d{2}[ -.]\w{4}[ -.]\d{4}[ -.]\d{4}[ -.](\d{4})
Я думаю, что когда вы говорите о комбинате, вы, вероятно, хотите сделать их в качестве обратной ссылки. В этом случае вам нужно скобки.
Explaination:
B*
, строка содержит символ "B" ноль или более раз.
G
, строка следует с точным символом "G" только один раз.
\d{2}
, строка следует из 2 цифр (0-9)
[ -.]
, строка следует за любым из этих символов в квадратных скобках. ("", "-". ".")
..........
(\d{4})
, наконец, строка следует с 4 цифрами. И сгруппируйте это, чтобы получить доступ к нему в поле замены.
Таким образом, вы можете получить доступ к последним 4 цифрам в поле замены, набрав « $ 1 » (без кавычек).
Это не будет соответствовать только этой строке
BG18RZBB91550123456789
Потому что после "B * G\d {2}" эта часть регулярного выражения должна следовать с любым из символов "", "-", "." так что это нарушает совпадения на этом этапе