我试图使用正则表达式提取特定数据,但我无法实现我想要的,例如,
在此页面
http://mnemonicdictionary.com/wordlist/GREwordlist/startingwith/A
我必须只保留介于其间的数据,
<div class="row-fluid">
和
<br /> <br /><i class="icon-user"></i>
所以我在Notepad ++中复制了HTML代码,在replace中复制了正则表达式,并尝试替换匹配的所有内容,
.*<div class="row-fluid">
删除<div class="row-fluid">
但它根本不起作用。
有谁知道为什么?
P.S:我没有使用任何编程语言,我只需要使用Notepad ++在html代码上执行此操作,而不是在实际的HTML文件上。
答案 0 :(得分:2)
我会在几个步骤中实现这一目标。
第1步。
将文档转换为一行。发现
\r\n
并且一无所获。 (确保在“替换”对话框中选择“扩展(\ n,\ r,..)”选项)
第2步。
找到
<div class="row-fluid">
并替换为
\r\n~<div class="row-fluid">
确保文档中未使用该字符“〜”。这个角色将帮助我们以后删除不必要的行
第3步。
查找
<br /> <br /><i class="icon-user"></i>
并替换为
<br /> <br /><i class="icon-user"></i>\r\n
第4步。
删除不必要的行。选中“正则表达式”。 找到
^[^~].+$\r\n
并且无需替换
第5步。
现在你只有以
开头的行~<div class="row-fluid">
以
结束<br /> <br /><i class="icon-user"></i>
你需要的一切只是删除这个标签
PS。如果需要多次执行相同的任务,可以尝试录制宏。
答案 1 :(得分:1)
您应该考虑使用Xpath进行检索。大多数语言都支持它。
当你选择一个名为xpather的页面项时,有一个很好的firefox插件可以推断出xpath表达式。
这里有一个黑客版本适用于较新的firefox版本
http://jassage.com/xpather-1.4.5b.xpi
要在Python中使用Xpath,请考虑使用http://xmlsoft.org/python.html
请注意,Xpath可能存在格式错误的html问题,因此您还可以找到一个有趣的选项来“清理”html并获取可解析的XML。
答案 2 :(得分:0)
恕我直言,使用Notepad ++进行操作很困难。根据{{3}},您需要:
要么学习regexp,要么想要解析HTML。依赖于哪个,解决方案不同。
如果你想学习正则表达式,这是(再次恕我直言)要解决的错误问题。
如果要解决问题(将数据保留在<div>
和<i>
之间),请查看如何解析HTML / XML。在python中你有一些很棒的库,比如BeautifulSoup(它可以处理破碎的html)。您可以使用dom解析或更有趣的解决方案(并且可以说更好地解决您的问题)来使用SAX和每事件处理。既然你知道每<div>
<i>
之后你就会得到一个{{1}},你可以做一个简单的堆栈来推送这两个事件之间的所有内容......