正则表达式删除具有给定类的段落后的标记

时间:2010-10-19 23:13:55

标签: css regex bbedit

有没有办法选择跟随给定类的段落的所有<br>标记?即<p class="myclass">This is a paragraph</p><br>

HTML中可能还有其他<br>,所以我无法使用它:

br {display:none;} 

我无法删除所有<br>标记。如果有办法选择这些特定的<br>标签,那么我可以使用CSS。

大约有700页,我不想浏览每一页,以确定是否需要<br>。我知道在“myclass”类的段落之后不需要它。

如果没有办法选择这些标签,那么我认为我可以使用BBEdit进行搜索并使用正则表达式替换。但我不知道如何编写可行的RE。

TIA, 琳达

3 个答案:

答案 0 :(得分:2)

p.myClass+br {display:none;}

这将选择与<br>元素直接相邻的所有<p class="myClass">元素。如果你需要比这更动态的东西,你需要正则表达式。

答案 1 :(得分:0)

假设BBEdit类似于TextWrangler,您可以使用内置的查找对话框。

转到搜索&gt;找到...(Command + F),执行“Seach For”</p><br>和“Replace With”</p>,然后使用窗口底部的“多文件搜索”选项选择文件。

这不是一个正则表达式,但是因为你说你正在使用由Bare Bones制作的BBEdit,并且据说与TextWrangler共享很多,它应该可以工作。 (否则只需免费下载TW)。它甚至可以为您提供一个漂亮的弹出窗口,告诉您它找到了什么,并在您想要查看时更换等等。

有关BBEdit搜索和其他有趣功能的更多信息,请参阅this page

答案 2 :(得分:0)

假设您要使用正则表达式删除带有名为<br>的类的段落后面的所有myclass标记:

搜索:(<p\b[^><]\sclass\s=\s*["']?myclass["']?[^><]>.?<\/p>\s*)<br\s*/?>

替换为:$1

注意,您必须确保HTML文档中的所有p代码都已正确关闭。