no one special no one special - 1 year ago 111
PHP Question

Understanding preg_match

I would like to check if string consists only of small letters or underscores.
Does the following returns true if string meets this condition? Is any better way to do this?

preg_match('/[^a-z_]/', $category_address)


Answer Source

Use a + quantifier with anchors:

preg_match('/\A[a-z_]+\z/', $category_address)

The pattern matches:

  • \A - start of string
  • [a-z_]+ - 1 or more (due to the greedy quantifier +) characters defined in the character class: either lowercase ASCII letters or _
  • \z - the very end of string

If an empty string should be matched, too, replace the + quantifier with a * one that matches zero or more occurrences of the quantified subpattern.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download