使用正则表达式从HTML解析出内容?
如何使用regex查找div中具有特定样式的数据以外的所有内容?e、 g使用正则表达式从HTML解析出内容?,html,regex,Html,Regex,如何使用regex查找div中具有特定样式的数据以外的所有内容?e、 g <div style="float:left;padding-left:10px; padding-right:10px"> <img src="../Style/BreadCrumbs/Divider.png"> </div> <div style="float:left; padding-top:5px;"> Data to keep </div&g
<div style="float:left;padding-left:10px; padding-right:10px">
<img src="../Style/BreadCrumbs/Divider.png">
</div>
<div style="float:left; padding-top:5px;">
Data to keep
</div>
<div style="float:left;padding-left:10px; padding-right:10px">
<img src="../Style/BreadCrumbs/Divider.png">
</div>
要保存的数据
我希望正则表达式匹配除数据之外的所有内容。我能看到的最好的方法就是删除html标记,然后用vb组合文件(我已经有了vb的代码)
我使用regex是因为我需要从几百个文件中提取数据 您建议的方法可能不是这样做的好方法。如果:
- 您可以访问
grep
- 您的grep版本支持perl兼容的正则表达式(
)PCRE
- 这种样式的
只包装您的数据,不包装其他元素div
- “数据”
不包含其他div
sdiv
(?s)<div style="float:left; padding-top:5px;">.*?</div>
对于这些:
激活-P
PCRE
将-z
替换为\n
,因此grep将整个文件视为一行NUL
仅打印匹配的零件-o
sed
是一个很好的工具
sed 's|</\?div[^>]*>||g'
sed's |]*>g'
如果将所有文件放在一个目录中,则可以同时进行连接:
grep -Pzo $PATTERN *.html | sed 's|</\?div[^>]*>||g' > out.html
grep-Pzo$PATTERN*.html | sed的|]*>| | g'>out.html
为什么您认为正则表达式是正确的工具?请提供一些html进行解析。忽略所有你将听到的关于不使用正则表达式解析html的废话,它完全适用于简单的情况;)如果你能对div的内容做出强有力的假设,你可以提取它,但你需要在这里指定这些假设,并附上一个例子。RegEx有什么特别的味道吗?@sas欢迎使用SO!在这里表示感谢的一种常见方式是向上投票,然后单击复选标记(如果这是最佳答案)接受
grep -Pzo $PATTERN *.html | sed 's|</\?div[^>]*>||g' > out.html