我收到了以下HTML代码:
<ul class='ips'>my_content</ul>
现在,我如何preg_match_all
这个,只匹配my_content
文字?
我正在尝试这个问题的答案:Preg match text in php between html tags但修改正则表达式会导致选择包含HTML标记的整个代码。
答案 0 :(得分:1)
以下正则表达式适用于标记之间的匹配。
它将匹配:
<ul class='ips'>...
使用单引号和双引号。
$string = "<ul class='ips'>my_content</ul>";
preg_match_all('/[^>]class=["\']ips[\'"]*>(.*?)<\//',
$string,
$matches,
PREG_PATTERN_ORDER);
print_r($matches);
如果您不在乎div,ul等,请从正则表达式模式中删除<ul
和ul>
。
上述回复:
Array
(
[0] => Array
(
[0] => <ul class="ips">my_content</ul>
)
[1] => Array
(
[0] => my_content
)
)
答案 1 :(得分:0)
在此处,使用此RegEx允许变体:
/[^>]class\s*=\s*["\'].*ips.*[\'"].*>/