正则表达式 - 匹配 HTML 代码的多行块

rei*_*jin 2 html regex block multiline match

我的正则表达式有问题。我需要匹配 HTML 块。

示例块在这里:

<tr class="tr-list " data-id="XX">
    <td class="ip-img"><div class="gun-icon"></div><img src="https://example.com/images/stories/HCP/HCP_5.jpg"/></td>
    <td class="ip-name ip-sort">Hotel Complex Project</td>
    <td class="ip-price ip-sort">297.00</td>
    <td class="ip-earnings ip-sort">43</td>
    <td class="ip-shares ip-sort">86</td>
    <td class="ip-status {'sorter':'currency'}"><img
            src="/img/assets/arrow1.png" title="0.989990234375"/></td>
    <td class="ip-blank-right"></td>
</tr>
Run Code Online (Sandbox Code Playgroud)

这些 HTML 块中的每个块都应该单独匹配,然后我想从中提取其他数据(例如 ip-name、ip-price、ip-earnings..)。

但我当前的正则表达式匹配所有内容,直到“(?=)”部分不再正确: http://regexhero.net/tester/ ?id=2b491d15-ee83-4dc7-8fe9-62e624945dcf

我需要更改什么才能使每个块都匹配?

问候!:)

PS:希望大家能理解我的意思……

小智 5

这应该得到所有 tr 行:

<tr class="tr-list[\s\S]+?</tr>
Run Code Online (Sandbox Code Playgroud)

这应该获取所有 tr 行以及列的匹配组:

<tr class="tr-list[^<]*?<td class="ip-img">(.*?)</td>\s*<td class="ip-name.*?">(.*?)</td>\s*<td class="ip-price.*?">(.*?)</td>\s*<td class="ip-earnings.*?">(.*?)</td>\s*<td class="ip-shares.*?">(.*?)</td>\s*<td class="ip-status.*?">([\s\S]*?)</td>[\s\S]+?</tr>
Run Code Online (Sandbox Code Playgroud)