为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
海绵宝宝撒 2021-05-13 17:34:56
我正在尝试执行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);}我该如何运作?
查看完整描述

1 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

用RegEx解析HTML可能不是最好的主意,这似乎是您可能想做的。但是,根据您的问题,我猜测您可能希望使用(.*)以下命令从此标签获取所有数据:


<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>

)

图案

您可以使用工具来设计所需的模式,例如:

//img1.sycdn.imooc.com//60a76919000131f107740213.jpg


查看完整回答
反对 回复 2021-05-21
  • 1 回答
  • 0 关注
  • 198 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信