У меня есть номера позиций в общем виде: 1-3 цифры, за которыми следует необязательный символ нижнего регистра, за которым следует дополнительная одиночная цифра, за которой следует слово, а затем необязательная одиночная цифра. Например, все следующие законные номера позиций: "21aRepair", "04iMod2", "04d1RR", "5", "07", "8a", "09b", "04g3"
C# Регулярное выражение для захвата слова после захваченной группы
мне нужно разбить эти номера позиций на компоненты вида: Компонента 1) 1-3 цифр с последующих дополнительным строчным характером с последующими необязательными одного значный Компонент 2) слово Компонент 3) необязательно одна цифра
Например:
"21aRepair"
должен стать "21a", "Repair", null
"04iMod2"
должен стать "04i", "Mod", "2"
"04d1RR"
должен стать "04d1", "RR", null
"5"
должен стать "5", null, null
У меня есть следующие regex: (^\d{1,3}[a-z]?\d?)
, что хорошо работает для компонента 1. Я попробовал несколько вариантов компонента 2 без успеха.
Я думал следующее: (?<=^\d{1,3}[a-z]?\d?)([a-zA-Z]*\d?)
будет работать. Добавление lookbehind "(?<="
к шаблону компонента 1 должно сказать «взять все, что есть после компонента 1», а группа ([a-zA-Z]*\d?)
должна соответствовать компонентам 2 и 3. Это не дает ожидаемых результатов. Может кто-нибудь сказать мне, где я ошибаюсь?
Первый символ слова посередине всегда в верхнем регистре? –