Php 理解预匹配

Php 理解预匹配,php,preg-match,Php,Preg Match,我想检查字符串是否只由小写字母或下划线组成。 如果字符串满足此条件,以下是否返回true?有更好的方法吗 preg_match('/[^a-z_]/', $category_address) 谢谢 使用带有锚定的+量词: preg_match('/\A[a-z_]+\z/', $category_address) 模式匹配: \A-字符串的开头 [a-z]+-1个或多个字符(由于贪婪的量词+)在字符类中定义:小写ASCII字母或 \z-字符串的末尾 如果还需要匹配空字符串,请将+量词替换

我想检查字符串是否只由小写字母或下划线组成。 如果字符串满足此条件,以下是否返回true?有更好的方法吗

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

谢谢

使用带有锚定的
+
量词:

preg_match('/\A[a-z_]+\z/', $category_address)
模式匹配:

  • \A
    -字符串的开头
  • [a-z]+
    -1个或多个字符(由于贪婪的量词
    +
    )在字符类中定义:小写ASCII字母或
  • \z
    -字符串的末尾

如果还需要匹配空字符串,请将
+
量词替换为与量化子模式的零次或多次匹配的
*
量词。

您的代码测试是否包含字母或下划线以外的内容。因此,如果此测试成功,则表示字符串无效。此测试返回1当条件为false时,它将搜索不是小写ascii字母或下划线的第一个字符。这个测试很有效(比描述所有字符串都有效),非常感谢。特别是为了指出这个+限定符!