捕获正则表达式非捕获组

时间:2014-08-07 19:45:42

标签: php regex

我有这个正则表达式:

  

“/ ^(?:[A-Z] +)$ /

这个字符串:

  

TTT

输出是:

  

array(size = 1)

     
    

0 =>字符串'TTT'(长度= 3)

  

怎么了?有人能指出我这样做的好方法吗?

1 个答案:

答案 0 :(得分:1)

当您将字符串与preg_match()匹配时,$matches[0]将包含整个匹配的字符串。捕获组将从$matches[1]开始。在这种情况下,您的正则表达式匹配字符串,因此$matches[0]将填充整个匹配的字符串。

来自PHP manual的广阔之处:

  

如果提供了匹配,那么它将填充搜索结果。 $matches[0]将包含与完整模式匹配的文本,$matches[1]将具有与第一个捕获的带括号的子模式匹配的文本,依此类推。