python正则表达式查找包含文本'abc123'的任何链接

时间:2010-08-07 01:49:17

标签: python regex beautifulsoup

我正在使用美味的汤来找到所有的href标签。

links = myhtml.findAll('a', href=re.compile('????'))

我需要找到href文本中包含'abc123'的所有链接。

我需要正则表达式的帮助,请看???在我的代码段中。

3 个答案:

答案 0 :(得分:2)

如果'abc123' 字面您要搜索的内容,href中的任何位置,则其他答案建议的re.compile('abc123')是正确的。如果您要匹配的实际字符串包含标点符号,例如'abc123.com',然后使用

re.compile(re.escape('abc123.com'))

re.escape部分将“逃避”任何标点符号,以便字面意思,就像字母数字一样;没有它,RE的引擎会以各种方式解释一些标点符号,例如上例中的点('.')将被视为“任何单个字符”,因此re.compile('abc123.com')将匹配,例如'abc123zcom'(以及许多其他类似性质的字符串)。

答案 1 :(得分:1)

"abc123"应该为您提供您想要的内容

如果不起作用,则BS可能正在使用re.match,在这种情况下您需要".*abc123.*"

答案 2 :(得分:1)

如果你想要所有链接都是'abc123',你可以简单地说:

links = myhtml.findAll('a', href=re.compile('abc123'))