在 PHP 中的 file_get_contents 中查找此特定字符串的正则表达式模式

regex pattern to find this particular string in file_get_contents in PHP

我希望通过使用 PHP 中的 file_get_contents() 函数从 url 的标签中获取此值 'B00DS4KJR4'。但是,我无法编写正确的正则表达式来从页面 html 源代码中找到值:

<span class="a-text-bold">ASIN:
                    </span>
                    <span>B00DS4KJR4</span>

你能帮我写出正确的正则表达式来找到页面上的特定值吗?

preg_match_all('/<span>(.*)<\/span>/',$the_html,$the_result_array);

第一个span与正则表达式不匹配,因为它里面有class,其他写成<span>anything</span>的会被找到。

您可以使用 Regex101 上也提供的正则表达式,如下所示。这将查找具有任何属性的 <span>,在 innerHTML 中包含字符串 ASIN:,后跟另一个 <span>,并捕获第二个 <span>.

的内容
$html ='<span class="a-text-bold">ASIN:
                </span>
                <span>B00DS4KJR4</span>';

if (preg_match('/<span\s[^><]*>\s*ASIN:\s*<\/span>\s*<span>\s*([^><]*)\s*<\/span>/i', $html, $m)) {
    $asin = $m[1];
    print $asin;
}