Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正在捕获的正则表达式非捕获组_Php_Regex - Fatal编程技术网

Php 正在捕获的正则表达式非捕获组

Php 正在捕获的正则表达式非捕获组,php,regex,Php,Regex,我有一个正则表达式: “/^(?[A-Z]+)$/ 这个字符串: TTT 输出为: 数组(大小=1) 0=>字符串“TTT”(长度=3) 怎么了?有人能告诉我这样做的好方法吗?当您将字符串与preg_match()匹配时,$matches[0]将包含整个匹配的字符串。捕获组将从$matches[1]开始。在这种情况下,您的正则表达式与字符串匹配,因此$matches[0]用整个匹配字符串填充 从浩瀚的宇宙中: 如果提供了匹配项,则它将填充搜索结果。$matches[0]将包含与完整模式匹配的文本

我有一个正则表达式:

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

这个字符串:

TTT

输出为:

数组(大小=1)

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


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

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

从浩瀚的宇宙中:

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


数组的第一项包含字符串中匹配的所有内容。捕获组从1开始。@WisdmLabs;因为只有一个完全匹配项,而没有捕获组。