regex question
| From: | Chip Wiegand | Date: | Mon, 07 Mar 2005 17:04:31 +0000 |
| Subject: | regex question | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-38798@lists.php.net to get a copy of this message | ||
I am writing some regex on a php form to validate input and have come up
with this, for example -
if (empty($first) || !eregi("^[A-Za-z]+[- ]?[A-Za-z]+$", $first))
for checking a persons name. This allows a single name, or a hyphenated
double name, or a non-hyphenated double name, and it works. My question is
this - why is the third set followed by a '+' optional? I thought the +
meant the preceding group is present 1 or more times. The ? means the
preceding group is present 0 or more times. Why is it that when I put a ?
in the place of the + after the last ]
if (empty($first) || !eregi("^[A-Za-z]+[- ]?[A-Za-z]?$", $first))
the regex is broken?
Regards,
Chip