Regular expression to match non-negative integers in PHP?
- by kavoir.com
I seem to get it to work with the following regexp by preg_match():
@^(?:[1-9][0-9]*)|0$@
Yet it's weird that it matches '-0', considering there are no '-' allowed at all in the regexp. Why?
What's more weird is that if you switch the parts divided by |:
@^0|(?:[1-9][0-9]*)$@
It matches all negative integers such as '-2' and '-10', etc.
What am I missing here? Any better regexp for non-negative integer?