我有一段文本(html 代码),需要查找<p>
标签及其类别、id、样式(如果有)等。我使用以下正则表达式执行此操作:
<p(.*?)>
或(<p([^>]+))>
我的文本格式如下:
<p class="navi_buttons">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p class="reg">Aliquam mi sapien, rutrum eget sem vel, semper efficitur.<a href="xyz.html" class="topiclink">vitae velit</a></p>
<p class="THIS_SHOULD_BE_AVOIDED">Donec fringilla sapien vitae interdum volutpat.</p>
<p class="nav">Cras nec orci non dolor ultrices luctus sit amet vitae velit.</p>
问题是我需要找到<p>
除某个特定类别之外的所有标签出现情况(即我想避免此类的段落)。我不知道如何编写一个被视为字符串而不是单个字符集的排除项。非常感谢您的帮助。诚挚问候,
答案1
我宁愿作弊也不愿尝试解决正则表达式。
搜索您不想更改的标签,并将其替换为唯一的字符串:
Search: "<p class="nav">" Replace: "***xxxxxx***"
然后对所有其他标签执行操作<p>
,并撤销原始更改:
Search: "***xxxxxx***" Replace: "<p class="nav">"
答案2
问题似乎已经解决了。我也在 LibreOffice 的论坛上提问,得到了答案:
<p (?!.*EXCLUDING_PATTERN.*)(.*?)>
例如:<p (?!.*"THIS.*)(.*?)>
至少对我来说,它是有效的。