用于匹配 HTML 字符串的正则表达式

RegEx for matching a HTML string

我正在尝试做一个 preg_match_all,但是没有用。

preg_match_all(
    '!<div class="Description_Productinfo" itemprop="description"><p><span style="color:#7f8c8d;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:14px;">(.*?)</span></span></span></p></div>!',
    $html,
    $matches1,
    PREG_SET_ORDER
);
foreach ($matches1 as $soge2){print_r($soge2);}

如何让它发挥作用?

用 RegEx 解析 HTMLs 可能不是最好的主意,这似乎是您想要做的。但是,根据您的问题,我猜您可能希望使用 (.*):

从该标签获取所有数据
<span style="font-size:14px;"></span>

这是可以做到的。首先,您可以设计 preg_match_all(); 基于:

preg_match_all($pattern, $subject, $matches);

在这种情况下,您的主题是您的 HTML 输入,我不确定,但您的模式可能是:

/<span style=\"font-size:14px;\">([\w\s]+)(<\/span>)/s 

代码

$html = '<div class="Description_Productinfo" itemprop="description"><p><span style="color:#7f8c8d;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:14px;">Alphanumeric Words If You Wish To Match</span></span></span></p></div>';

preg_match_all('/<span style=\"font-size:14px;\">([\w\s]+)(<\/span>)/s', $html, $matches1, PREG_SET_ORDER);
var_dump($matches1);

foreach ($matches1 as $soge2) {
    print_r($soge2);
}

输出

Array
(
    [0] => <span style="font-size:14px;">Alphanumeric Words If You Wish To Match</span>
    [1] => Alphanumeric Words If You Wish To Match
    [2] => </span>
)

模式

您可以使用工具来设计您想要的pattern,例如: