0

我正在使用 python 从 IMDb 中刮取一些信息,并希望用空格替换给定的文本 + 12 个字符。这可能吗?这是一个例子:

我有字符串

'<a href="/name/nm2142796/">Santino Rice</a> tells Roxxxy Andrews that she was "like Chewbaca in drag."'

并想用 替换'<a href="/name/nm2142796/">'''但有没有办法做类似的事情:

string.replace('<a href="/name/'+12,'')

它出现了很多,但nm#######总是不同的(尽管它总是在 nm 后面 7 位数字)。

4

2 回答 2

3

这正是您所要求的:

import re
re.sub('<a href="/name/.{9}', '', string)

替换字符串和另外 9 个字符。

re.sub('<a href="/name/[^>]*>',  '', string)

也可以工作,而不依赖于许多字符。

但是当然最好使用 html 解析而不是尝试使用字符串操作来清理 html。例如BeautifulSoup ,或者lxmlhtmlparser ...选择一个。

于 2013-07-13T20:19:33.740 回答
1

如果你想把正则表达式排除在外,你可以这样做:

string.replace('<a href="/name/','')[12:]

或者您可以使用正则表达式替换:

import re
re.sub(r'<a href="/name/nm[\d]+/">', '', string)
于 2013-07-13T20:22:59.690 回答