Я действительно близок, но просто не могу понять, что произошло. Я пытаюсь заставить его соответствовать только цифрам без дефиса.Регулярное выражение для соответствия только числам после последней тире
Для примера ниже показывает нужный матч в скобках:
one (no match)
one-1 (1)
one-two (no match)
one-two-2 (2)
one-two-23 (23)
one-two-23456 (23456)
one-two-three (no match)
one-two-three-1 (1)
one-two-three-23 (23)
one-0-two-three-2343 (2343)
one-0-44-2343233 (2343233)
one-0-two-three-234and324 (no match)
Я пробовал пару моделей до сих пор, и вот результаты.
Это близко, но спички включают дефис.
-\d+$
Я тоже пробовал это, что исправляет проблему с дефисом, но только соответствует двум или более цифрам после дефиса. Например, он не будет соответствовать «1» в «один-1», но он будет соответствовать «12» в «один-12».
[^-]\d+$
Я хотел бы отметить, что я использую метод javascript string replace().
Я обновил свой вопрос, давая вам знать, что я использую javascript, поэтому первое предложение здесь не будет работать. Второй, по-видимому, также соответствует дефисам. – Rick
Он будет соответствовать дефисам, но, используя группы захвата, вы можете получить то, что вам нужно, используя группы соответствия. – brandonscript
Я пытаюсь заменить только цифры так, чтобы «one-1'.replace (/ (?: -) (\ d +) $ /, '') равнялось бы« one- ». Если я использую группу захвата 'one-1'.replace (/ (?: -) (\ d +) $ /,' $ 1 '), дает мне «one1». Я использую его неправильно? – Rick