【发布时间】:2018-12-14 15:23:54
【问题描述】:
我正在尝试从 unicode 字符串中提取数字。字符串看起来像raised by 64 backers 和raised by 2062 backers。我尝试了很多不同的方法,但下面的代码是唯一有效的。
backers = browser.find_element_by_xpath('//span[@gogo-test="backers"]').text
match = re.search(r'(\d+)', backers)
print(match.group(0))
由于我不确定我需要多久从字符串中提取子字符串,并且我不想创建大量额外的变量和代码行,所以我想知道是否有更短的方法来完成这个?
我知道我可以做这样的事情。
def extract_digits(string):
return re.search(r'(\d+)', string)
但我希望有一个单行,这样我就可以在不使用类似这样的附加函数的情况下构建脚本。
backers = ...
title = ...
description = ...
...
即使它显然不起作用,我也想做类似以下的事情,但它没有按预期工作。
backers = re.search(r'(\d+)', browser.find_element_by_xpath('//span[@gogo-test="backers"]').text)
输出看起来像这样。
<_sre.SRE_Match object at 0x000000000542FD50>
有什么办法解决这个问题?!
【问题讨论】:
-
title和description来自哪里?如果您能提供一些输入和预期的输出,那就更好了。 -
@AshishAcharya 你不需要担心
title和description,这只是为了简单地展示我希望如何在不使用附加函数的情况下构造我的代码,理想情况下 -
@Anthony,正则表达式
raised by (.*) backers只提取数字怎么样?可能像import re re.match(r"raised by (.*) backers", string)
标签: python regex string selenium extract