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