【发布时间】:2018-08-10 03:17:03
【问题描述】:
使用 preg_match_all 我想在 html 中获取类和数据属性。
以下示例有效,但它只返回类名称或只返回data-id内容。
我希望示例模式同时查找类和数据 ID 内容。
我应该使用哪种正则表达式模式?
HTML 内容:
<!-- I want to: $matches[1] == test_class | $matches[2] == null -->
<div class="test_class">
<!-- I want to: $matches[1] == test_class | $matches[2] == 1 -->
<div class="test_class" data-id="1">
<!-- I want to: $matches[1] == test_class | $matches[2] == 1 -->
<div id="test_id" class="test_class" data-id="1">
<!-- I want to: $matches[1] == test_class test_class2 | $matches[2] == 1 -->
<div class="test_class test_class2" id="test_id" data-id="1">
<!-- I want to: $matches[1] == 1 | $matches[2] == test_class test_class2 -->
<div data-id="1" class="test_class test_class2" id="test_id" >
<!-- I want to: $matches[1] == 1 | $matches[2] == test_class test_class2 -->
<div id="test_id" data-id="1" class="test_class test_class2">
<!-- I want to: $matches[1] == test_class | $matches[2] == 1 -->
<div class="test_class" id="test_id" data-id="1">
无法正常工作的正则表达式:
$pattern = '/<(div|i)\s.*(class|data-id)="([^"]+)"[^>]*>/i';
preg_match_all($pattern, $content, $matches, PREG_SET_ORDER);
提前致谢。
【问题讨论】:
标签: php html regex preg-match-all