我正在执行以下操作来获取movieID:
>>> x.split('content')
['movieID" ', '="770672122">']
>>> [item for item in x.split('content')[1] if item.isdigit()]
['7', '7', '0', '6', '7', '2', '1', '2', '2']
>>> ''.join([item for item in x.split('content')[1] if item.isdigit()])
'770672122'
这样做会有更好的方法吗?
答案 0 :(得分:1)
不使用正则表达式,你可以用双引号拆分并取下一个最后一个字段。
u="""movieID" content="7706">"""
u.split('"')[-2] # returns: '7706'
如果您还不了解正则表达式,这个技巧肯定是最具可读性的。
你的字符串有点奇怪,因为有3个双引号。我假设它来自一个HTML文件,你只显示一个小的子字符串。在这种情况下,您可以使用regular expression(例如:
)使代码更加健壮import re
s = re.search('(\d+)', u) # looks for multiple consecutive digits
s.groups() # returns: ('7706',)
您可以使用BeautifulSoup之类的DOM解析器使其更加强大(但您需要阅读更多内容)。
答案 1 :(得分:1)
我认为x
看起来像这样:
x = 'movieID content="770672122">'
正则表达式绝对是提取内容的一种方式。例如:
>>> re.search(r'content="(\d+)', x).group(1)
'770672122'
以上提取字符串content="
后面的一个或多个连续数字。
答案 2 :(得分:1)
如果您的字符串如下所示,您似乎可以执行以下操作:
>>> import re
>>> x = 'movieID content="770672122">'
>>> re.search(r'\d+', x).group()
'770672122'