[英]RegEx Capture Group with PHP preg_match Not Returning Values
我试图在下面的$ string中捕获文本“ Capture This”。
$string = "</th><td>Capture This</td>";
$pattern = "/<\/th>\r.*<td>(.*)<\/td>$/";
preg_match ($pattern, $string, $matches);
echo($matches);
但是,这仅返回“ Array”。 我也尝试使用print_r打印$ match,但这给了我“Array()”。
这个模式只会出现一次,所以我只需要匹配一次。 有人可以告诉我我做错了什么吗?
问题是你需要一个CR字符\\r
。 另外,您应该使捕获组内的搜索变得懒惰,并使用print_r
输出数组。 像这样:
$pattern = "/<\/th>.*<td>(.*?)<\/td>$/";
您可以在这里查看其运行情况: http : //codepad.viper-7.com/djRJ0e
请注意,建议使用适当的html解析器而不是使用正则表达式来解析html。
两件事情:
您需要从正则表达式中删除\\r
,因为输入字符串中没有回车符。
将echo($matches)
更改为print_r($matches)
或var_dump($matches)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.