假设我们有一个如下所示的HTML文件:
</pre>
<pre><img src="/icons/blank.gif" alt="Icon "> <a href="?C=N;O=D">Name</a>
<img src="/icons/unknown.gif" alt="[ ]"> <a href="AAAAAAA.jpg">AAAAAAA.jpg</a> 16-Jan-2008 01:27 827K
<img src="/icons/unknown.gif" alt="[ ]"> <a href="AAAAAAA.jpg.xml">AAAAAAA.jpg.xml</a> 16-Jan-2008 01:28 12K
<img src="/icons/image2.gif" alt="[IMG]"> <a href="BBBBB.AAAAAAAA.txt">BBBBB.AAAAAAAA.txt</a> 16-Jan-2008 15:01 1.6K
<img src="/icons/unknown.gif" alt="[ ]"> <a href="js421254.jpg">AAAAAAA.jpg</a> 16-Jan-2008 01:27 827K
<img src="/icons/unknown.gif" alt="[ ]"> <a href="js421254.jpg.xml">AAAAAAA.jpg.xml</a> 16-Jan-2008 01:28 12K
...
...
...
<img src="/icons/image2.gif" alt="[IMG]"> <a href="BBdBBB.AAAAsaAAAA.txt">BBBBB.AAAAAAAA.txt</a> 16-Jan-2008 15:01 1.6K
<img src="/icons/unknown.gif" alt="[ ]"> <a href="52542.jpg">AAAAAAA.jpg</a> 16-Jan-2008 01:27 827K
<img src="/icons/unknown.gif" alt="[ ]"> <a href="52542.jpg.xml">AAAAAAA.jpg.xml</a> 16-Jan-2008 01:28 12K
<hr></pre>
</body></html>
如何创建包含以下字符的新文本文件:
预期结果:
^{2}$
BeautifulSoup有利于网页浏览:
如果你想要纯Python并且你的用例足够简单,你可以试试正则表达式。这是一个棘手的问题,因为在现实世界中有很多角落案例和格式错误的HTML。在
^{pr2}$或者,如果您正在查看href属性:
如果你只是放弃一些简单的东西,比如色情网站,你应该用正则表达式得到好的结果。在
好吧,re模块是regular expressions的Python实现——这是一个庞大的主题,有比圣经更大的书(好吧,也许比新约全书还要大)。我不会假装我能在一个stackoverflow答案中触及它的表面。在
首先你会发现奇怪的是引号前面的
r
。它是一个raw string literal,一个你不必转义\
的字符串,因为与正则字符串不同,反斜杠在原始字符串中没有特殊的含义(在正则表达式中经常使用反斜杠,我突然想到我在本例中没有使用带反斜杠的模式-习惯的力量…)现在是表达式:
()
标记要捕获的组。点表示任何字符,加号表示其中一个或多个字符,?
表示搜索不贪婪(默认情况下,.+
将匹配任何字符,包括引号)。只需尝试不带?
的相同表达式,您就会明白发生了什么。在我希望此正则表达式正确概括:
希望这有帮助
您可以使用正则表达式进行简单的解析,但这取决于您到底想要什么。在
您可以使用类似于:
要在当前列表中查找任何jpg文件,但如果文件名有
.
,则必须修改regex。在如果不需要重复项,可以将其包装在一个集合中,例如:
^{pr2}$正则表达式说明:
这将选择一个或多个字符的任意序列,即字母或数字。在
这将选择确切的字符串
.jpg
这意味着下一个字符不能是
.
除了最后一部分之外的所有内容的括号都是正则表达式选择的所有内容。在
相关问题 更多 >
编程相关推荐