Ваше регулярное выражение не дает желаемого результата, потому что вы не добавили первую его часть в группу, поэтому у вас есть только одна группа в вашем регулярном выражении 1 . Вы можете исправить это, используя:
([^0-9]*)([0-9]+).*
И тогда вы можете найти две строки в «Группе 1» и «Группе 2». Обратите внимание, что "Группа 0" - это полное совпадение .
Вот демоверсия .
Лучше и короче использовать следующее регулярное выражение:
(\D*)(\d+)
Соответствует любым нечисловым символам в первой группе (до тех пор, пока не достигнет первых числовых символов) , а затем соответствует следующим числовым символам , включая все цифры Unicode во второй группа.
И вы можете решить, включать или нет .*
в конце.
Попробуйте онлайн .
Ссылки
1 "Группа 0" - это полное совпадение для всего шаблона, поэтому вам необходимо использовать "Группу 1" и "Группу 2".