使用find和replace,正则表达式将删除围绕这样的标记:
<option value="863">Viticulture and Enology</option>
注意:选项值会更改为不同的数字,但可以使用正则表达式删除数字
我仍在努力学习,但我无法让它发挥作用。
我没有使用它来解析HTML,我在excel中提供了我们公司网站上的数据,但是我们的设计师删除了原始数据文件,我们需要它。我有一个选项列表,需要删除HTML标签,使用Notepad ++查找和替换
答案 0 :(得分:16)
这适用于我的Notepad ++ 5.8.6(UNICODE)
搜索:<option value="\d+">(.*?)</option>
替换:$1
请务必选择“正则表达式”和“。匹配换行符”
答案 1 :(得分:9)
我使用以下正则表达式完成:
查找: <.*?>|</.*?>
和
替换为: \r\n
(这是新行)
通过使用此正则表达式(<.*?>|</.*?>
),我们可以轻松找到HTML
标记之间的值,如下所示:
我输入了:
<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
等选项之间找到值并得到以下输出:
答案 2 :(得分:4)
这对我很有用:
答案 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以正则表达式友好的方式进行处理,总是符合一条线,并且从未评论过。或者你在一次性代码中使用它,并且可以在之前检查你的输入。