The '^' character says start matching from the very first character in the string. This is called an 'anchor', because you're saying the match starts at a specific place.
The '\d' means match only number characters. The translation is '[0123456789]' also seen as '[0-9]'. There are many of these shortcuts and it is worth your while to learn them (see perlre doc).
The '+' means "one or more of the preceding". So we're saying there has to be at least one numeric digit and maybe more (but contiguous - nothing in-between).
And the '$' is like '^', an anchor, saying the match ends after the last character in the string. (There's a footnote about newline chars, but look that up later).
So altogether we're saying that the entire string (because of the '^' and '$' anchors) must contain only numeric characters and there must be at least one of those, and nothing else is allowed.
Other people have mentioned playing with '+' or '-' signs and that's reasonable. It gets into the topic "what do you think a number looks like?" I know there's good discussions in lots of books. I found a bit of one in perlretut under "Building a Regexp". There's probably others in the docs.
With REs it is only a question of "How much fun can you stand at any one time?" Learn just what you need at the time and keep adding on!
In reply to Re^3: String/Numeric Manipulation
by shenme
in thread String/Numeric Manipulation
by Ms. T.
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |