Вы можете использовать
.*(?:\D|^)(\d+)
чтобы получить последний номер; это связано с тем, что средство сопоставления сожмет все символы с помощью .*
, затем вернется к первому нецифровому символу или началу строки, а затем совпадет с последней группой цифр.
Ваш отрицательный взгляд не работает, потому что в строке "1 3", например, 1
соответствует \d+
, тогда пробел совпадает с отрицательным взглядом (поскольку это не последовательность из одного или больше цифр). На 3
никогда даже не смотрят.
Обратите внимание, что в вашем примере регулярного выражения нет групп, поэтому я не уверен, как вы извлекали число.