Числа заполнения RegEx, окруженные другими символами

Я ищу RegEx, который фиксирует серию цифр, окруженных строковым шаблоном, и дополняет эту серию цифр ведущими нулями до 4 цифр. При этом из всей строки должны быть удалены все пробелы. Некоторые примеры: "F12b" должен захватывать "12" и возвращать "F0012b" "AB 214/3" должен захватывать "214" и возвращать "AB0214/3" "G0124" должен захватывать "0124" и возвращать исходную строку без изменений

Исходная строка должна соответствовать следующим правилам: - должна начинаться с [a-zA-Z] - после приведенного выше шаблона может быть любое количество необязательных пробелов - за числовой последовательностью может следовать другая строка - числовая последовательность может быть любой количество цифр. Только если цифр менее 4, последовательность дополняется ведущими нулями, в противном случае она остается неизменной. - Меня интересует только первое вхождение в строку

Я публикую этот вопрос здесь, потому что я не использую RegEx достаточно часто, чтобы понять это, но я знаю, что это идеальный случай для RegEx. Любая помощь очень ценится, и объяснение выражения, безусловно, поможет мне понять его.


person Hans De Schryver    schedule 20.11.2012    source источник
comment
Какой язык/инструмент вы используете?   -  person kev    schedule 20.11.2012
comment
Есть ли у кого-нибудь ответ на это? Я вижу, что вопрос кажется заброшенным.   -  person Eric Hepperle - CodeSlayer2010    schedule 23.02.2018


Ответы (1)


Чтобы сопоставить это и извлечь нужную информацию, регулярное выражение в порядке, вы можете использовать это:

^([a-zA-Z]+)\s*(\d+)(.*)

См. здесь, в regexr. Вы видите только, что пробел был удален во втором примере, но вся необходимая информация записана в $1, $2 и $3.

Регулярные выражения — это инструмент для сопоставления шаблонов. Использование этого шаблона в методе замены и способ построения строки замены полностью зависят от языка и не имеют ничего общего с регулярным выражением. Не зная языка на эту часть нельзя ответить.

person stema    schedule 20.11.2012