【发布时间】:2015-04-13 06:39:56
【问题描述】:
我想要一个正则表达式(在 phpstorm 中搜索),它将在我的项目目录的所有 html 文件中搜索起始标记及其对应的结束标记。
例如,这是我的代码
<ul class="sub-menu">
<li id="menu-item-215" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-215"><a href="news-updates/index.html"><span>News / Updates</span></a></li>
<li id="menu-item-295" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-295"><a href="offers/index.html"><span>Offers</span></a></li>
</ul>
我希望 phpstorm 准确地搜索从开始 ul 标记和结束 ul 标记开始的这些代码行。然后我想用空格替换这些行。我只想一次从我的所有 html 文件中删除这个副标题标签及其内容。 我该怎么做?
【问题讨论】:
-
不要使用正则表达式解析 HTML。使用适当的 HTML 解析模块。 您无法使用正则表达式可靠地解析 HTML,并且您将面临悲伤和挫败感。一旦 HTML 与您的期望发生变化,您的代码就会被破坏。请参阅htmlparsing.com/php 或this SO thread,了解如何使用已经编写、测试和调试过的 PHP 模块正确解析 HTML。
-
@AndyLester 谢谢,但我只想替换整个标签并将其从我的所有项目文件中删除。我不能简单地使用 PHPStorm 编辑器搜索和替换吗?
-
我没有意识到 PHPStorm 是一个 IDE。然后我不确定我会建议什么。使用正则表达式解析 HTML 的问题在于,正则表达式无法胜任处理任意 HTML 的任务,而且我不知道 PHPStorm 是否会处理多行正则表达式。请参阅htmlparsing.com/regexes 了解可能妨碍您的正则表达式的有效 HTML 示例。
标签: html regex replace html-parsing phpstorm