我使用以下正则表达式代码
如果这些标签之间有退款或退货,
/<a href="(.*)".*>(?:Refund|Refound|Refunds|return|returns)<\/a>/Ui
匹配,但它不匹配任何东西
我在
中搜索的html数据 <li class="site-footer__linklist-item">
<a href="/pages/shipping-return-policy">Shipping Return Policy</a>
</li>
我使用https://regexr.com/来测试代码
如何检查它是否包含其中一个单词(?:退款|重新退款|退款|退货|退货)
谢谢
答案 0 :(得分:1)
您可以使用DOMDocument
课程获取nodeValue
a
代码后跟preg_match
。
$str = '<li class="site-footer__linklist-item"><a href="/pages/shipping-return-policy">Shipping Return Policy</a></li>';
$dom = new DOMDocument();
$dom->loadHTML($str);
foreach($dom->getElementsByTagName("a") as $a){
$val = $a->nodeValue;
if(preg_match("/Refund(s)?|Refound|return(s)?/i", $val)) {
echo $val;
}
}
但是,如果您仍然希望以正则方式执行此操作,请执行以下操作:
<a.*?href="(.*?)".*?>.*?(Refunds?|Refound|returns?).*?<\/a>