I'm trying to verify that my string matches a pattern. That is, the full string can be written as that pattern.
However preg_match
returns true
, if any substring matches that pattern.
(E.g. preg_match("#[a-z]*#, "333k")
returns 1
, which I don't want to.
In this example I'd rather verify, the whole string contains only small Latin letters.)
You use the start and end markers, ^
and $
respectively, to indicate beginning and end of the string in your regular expression pattern. That way you can make the expression match only the whole string, not any kind of substring. In your case it would then look like this:
preg_match("#^[a-z]*$#", "333k");
You can also, with one these markers, specify that the pattern must only match the beginning or the end of the string.