查找/替换正则表达式以删除html标记

时间:2011-04-27 17:13:30

标签: regex notepad++

使用find和replace,正则表达式将删除围绕这样的标记:

<option value="863">Viticulture and Enology</option>

注意:选项值会更改为不同的数字,但可以使用正则表达式删除数字

我仍在努力学习,但我无法让它发挥作用。

我没有使用它来解析HTML,我在excel中提供了我们公司网站上的数据,但是我们的设计师删除了原始数据文件,我们需要它。我有一个选项列表,需要删除HTML标签,使用Notepad ++查找和替换

5 个答案:

答案 0 :(得分:16)

这适用于我的Notepad ++ 5.8.6(U​​NICODE)

搜索:<option value="\d+">(.*?)</option>

替换:$1

请务必选择“正则表达式”和“。匹配换行符” enter image description here

答案 1 :(得分:9)

我使用以下正则表达式完成:

查找: <.*?>|</.*?>

替换为: \r\n(这是新行)

通过使用此正则表达式(<.*?>|</.*?>),我们可以轻松找到HTML标记之间的值,如下所示:

enter image description here

我输入了:

<otpion value="123">1</option><otpion value="1234">2</option><otpion value="1235">3</option><otpion value="1236">4</option><otpion value="1237">5</option> 

我需要在1,2,3,4,5

等选项之间找到值

enter image description here

并得到以下输出:

enter image description here

答案 2 :(得分:4)

这对我很有用:

  • 在“查找”模式中选择“正则表达式”。
  • 输入[&lt;]。*?&gt;在“查找内容”字段中,将“替换为”字段留空。
  • 请注意,您需要使用Notepad ++版本5.9?运营商工作。

在这里找到: digoCOdigo - strip html tags in notepad++

答案 3 :(得分:2)

这样的东西可行(只要你知道HTML的格式不会改变):

<option value="(\d+)">(.+)</option>

答案 4 :(得分:1)

String s = "<option value=\"863\">Viticulture and Enology</option>";
s.replaceAll ("(<option value=\"[0-9]+\">)([^<]+)</option>", "$2")
res1: java.lang.String = Viticulture and Enology

(用scala测试,因此res1:)

使用sed,你会使用一些不同的语法:

echo '<option value="863">Viticulture and Enology</option>'|sed -re 's|(<option value="[0-9]+">)([^<]+)</option>|\2|'

对于记事本++,我不知道细节,但“[0-9] +”应该表示'至少一个数字',“[^&lt;]”除了开口小于,多次之外的任何东西。掩蔽和反向引用可能不同。 正则表达式存在问题,如果它们跨越多行,或者被注释隐藏,则正则表达式将无法识别它。

然而,很多html以正则表达式友好的方式进行处理,总是符合一条线,并且从未评论过。或者你在一次性代码中使用它,并且可以在之前检查你的输入。