我需要检索data-videoid(h7rhqXbdIts)
<?php
$pattern = '\'/data-videoid="([^"]+)/\'';
$subject = '<amp-youtube width="640" height="360" data-videoid="h7rhqXbdIts" layout="responsive"></amp-youtube>';
$result = preg_match( $pattern, $subject , $matches );
echo $result;
print_r($matches);
?>
答案 0 :(得分:1)
您在模式的开头/结尾添加了一些'
单引号,它们试图对引号进行字面匹配(不存在)。只需删除它们就可以解决您的问题:
<?php
$pattern = '/data-videoid="([^"]+)/';
$subject = '<amp-youtube width="640" height="360" data-videoid="h7rhqXbdIts" layout="responsive"></amp-youtube>';
$result = preg_match( $pattern, $subject , $matches );
echo $result;
print_r($matches);
?>
请参阅this output,其中您可以看到$matches[1]
包含您正在寻找的视频ID(h7rhqXbdIts)。
答案 1 :(得分:0)
此代码应该可以使用
$subject = '<amp-youtube width="640" height="360" data-videoid="h7rhqXbdIts" layout="responsive"></amp-youtube>';
$result = preg_match( '@data-videoid="(.*?)"@s', $subject , $matches );
echo $result;
print_r($matches); //Array ( [0] => data-videoid="h7rhqXbdIts" [1] => h7rhqXbdIts )