使用正则表达式从网站获取字符串而不使用外部模块

时间:2016-01-12 01:20:57

标签: python regex string extraction

有没有办法在下面的html文件中获取所有链接和文本。我已经尝试了所有方法和很多答案,但并没有真正得到它。

<tr>
    <td><a href="pr_background-image.asp">background-image</a></td>
    <td>Specifies one or more background images for an element</td>
    <td>1</td>
</tr>

我希望它返回.asp链接以及它下面的描述。新行字符是我的主要问题,它显示为\\r\\n

UPDATE:我不想使用任何外部模块。不是美丽的汤。只是正则表达式,因为我正在处理的事情将被共享,如果用户必须安装别的东西就没有意义了。

2 个答案:

答案 0 :(得分:0)

使用正则表达式来做你正在寻找的东西有点蹒跚,解析html并使用xpath或dom查询会更具外观可读性。

最重要的是,即使没有新行写一个足够普通的正则表达式也会有点棘手。

请参阅this post了解多行regexp。有了这个,你可能想要使用一个捕获组来获取链接,而另一个用于获取td单元。

答案 1 :(得分:-1)

在python中使用html最简单的方法是BeautifulSoup或类似的模块。我建议你调查一下。如果你想坚持使用正则表达式,你可以通过以下方式在两个int evens = 0; for(int i=0; i<chosenNumbers.length; i++) { if(chosenNumbers[i] %2 ==0) evens++; } System.out.println("You chose "+evens+" even numbers and " + (chosenNumbers.length-evens) + " odd numbers."); if (evens !=2 || evens!=3) { System.out.print("This was called because " + evens + " is not equal to 2 or 3"); } else if (evens==2 || evens==3) { System.out.print(evens +" equals 2 or 3"); } 标签之间允许标签/空格/新行等:

<td>