2012-02-12 5 views
1

У меня есть регулярное выражение \([0-9]+|\-)\, которое либо берет число, либо дефис.
, но если я использую это, чтобы соответствовать чему-то вроде -555, он по-прежнему работает, потому что он соответствует дефису -. Так что мне интересно, есть ли способ соответствовать всему этому?regex match hyphen in string

ответ

8
/^([0-9]+|\-)$/ 

В ^ средства «в начале строки линии», и $ средства «в его конце».

Редактировать: исправлено ответ, благодаря luke-gru. Как указано в комментариях, \A находится в начале строки, \Z находится в конце. Поведение ^ и $ зависит от того, включен ли многострочный или нет.

+3

Просто, чтобы быть грязным педантом, \ A и \ Z просят. и конец строки, а^и $ - прошу. и конец строки. В большинстве случаев они одинаковы, но удары по outlier отстой, когда вы не готовы к этому. –

+0

@ luke-gru не знал этого, спасибо за информацию. ответ обновлен – mgibsonbr