preg_match来检索字符串

时间:2017-07-18 04:31:37

标签: php regex preg-match

我需要检索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);
?>

2 个答案:

答案 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 )