匹配 HTML 类标记之间的文本


Match text between HTML class tags

我得到了以下HTML代码:

<ul class='ips'>my_content</ul>

现在,我该如何preg_match_all,仅匹配my_content文本?

我正在尝试从这个问题中得到答案:Preg 在 html 标签之间匹配 php 中的文本,但修改正则表达式会导致选择包括 HTML 标签在内的整个代码。

以下正则表达式将用于标签之间的匹配。

它将匹配:

<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 还是等,请从正则表达式模式中删除<ulul>

上面的回应:

Array
(
[0] => Array
    (
        [0] => <ul class="ips">my_content</ul>
    )
[1] => Array
    (
        [0] => my_content
    )
)

在这里,使用此正则表达式来允许变体:

/[^>]class's*='s*["''].*ips.*[''"].*>/
  • 等号前后的空格
  • 一个类属性中的多个类名
  • 类属性之后的多个属性