PHP正则表达式类间隔

PHP正则表达式类间隔,php,regex,Php,Regex,我学习PHP正则表达式 通常情况下,以下代码应在屏幕上显示“FALSE” 但它告诉我“真的” 你能告诉我为什么吗? 多谢各位 <?php if (preg_match("#[^a-z]#", "la nuit, tous les chats sont gras")) {echo 'TRUE';} else {echo 'FALSE';} ?> Apreg\u match与未编排的正则表达式一起使用时,将搜索部分匹配 如果要确保整个字符串由字符而不是小写ASCII字母组成,

我学习PHP正则表达式 通常情况下,以下代码应在屏幕上显示“FALSE” 但它告诉我“真的” 你能告诉我为什么吗? 多谢各位

<?php

if (preg_match("#[^a-z]#", "la nuit, tous les chats sont gras")) 
{echo 'TRUE';}
else 
{echo 'FALSE';} 

?>

A
preg\u match
与未编排的正则表达式一起使用时,将搜索部分匹配

如果要确保整个字符串由字符而不是小写ASCII字母组成,请使用

if (preg_match("#^[^a-z]*$#", "la nuit, tous les chats sont gras")) 
{echo 'TRUE';}
else 
{echo 'FALSE';} 

详细信息

  • ^
    -字符串开始
  • [^a-z]*
    -除小写ASCII字母外,零个或多个字符
  • $
    -字符串的末尾(或者这里最好是
    \z
    匹配字符串的最末尾)

A
preg\u match
与未编排的正则表达式一起使用时,将搜索部分匹配

如果要确保整个字符串由字符而不是小写ASCII字母组成,请使用

if (preg_match("#^[^a-z]*$#", "la nuit, tous les chats sont gras")) 
{echo 'TRUE';}
else 
{echo 'FALSE';} 

详细信息

  • ^
    -字符串开始
  • [^a-z]*
    -除小写ASCII字母外,零个或多个字符
  • $
    -字符串的末尾(或者这里最好是
    \z
    匹配字符串的最末尾)

    • 让我为您拆分一下:

      • []
        A组
      • ^
        组内表示“不在”,组中的所有定义都表示与之相反
      • a-z
        从小a到小z的所有字母

      最后,您找到了所有空格和逗号。

      让我为您拆分:

      • []
        A组
      • ^
        组内表示“不在”,组中的所有定义都表示与之相反
      • a-z
        从小a到小z的所有字母

      最后,您找到了所有空格和逗号。

      在正则表达式中,您试图找到第一个非字母字符,并且在主题字符串中出现了这些符号。检查它:

      preg_match_all("#^[^a-z]*$#", "la nuit, tous les chats sont gras", $matches);
      var_dump($matches);
      
      结果

      array (size=1)
        0 => 
          array (size=7)
            0 => string ' ' (length=1)
            1 => string ',' (length=1)
            2 => string ' ' (length=1)
            3 => string ' ' (length=1)
            4 => string ' ' (length=1)
            5 => string ' ' (length=1)
            6 => string ' ' (length=1)
      

      在正则表达式中,您试图找到第一个非字母字符,而在主题字符串中,这些符号是存在的。检查它:

      preg_match_all("#^[^a-z]*$#", "la nuit, tous les chats sont gras", $matches);
      var_dump($matches);
      
      结果

      array (size=1)
        0 => 
          array (size=7)
            0 => string ' ' (length=1)
            1 => string ',' (length=1)
            2 => string ' ' (length=1)
            3 => string ' ' (length=1)
            4 => string ' ' (length=1)
            5 => string ' ' (length=1)
            6 => string ' ' (length=1)
      

      为什么期望为false?空格和逗号是非字母字符。使用锚点进行完全匹配,或者。另外,它是“la nuit,tous les chats sont gris”,为什么您希望为false?空格和逗号是非字母字符。在一场完整的比赛中使用锚,或者。另外,它是“la nuit,tous les chats sont gris”,请参见。请参见。