Python - 使用正则表达式捕获字符串中的数值

时间:2017-03-23 21:57:23

标签: python regex

我有一段代码试图提取一个数值,在这种情况下,'rel'来自这样的字符串:

str1 = 'span class="stars" rel="3.2" style="width:64.0%" title="Rating 3.2 out of 5 stars">/span>'

match = re.findall(r'span rel="(\d+)*(\.\d+)".\*>/span>', str1)

if match:
    print("it's here!")          
else:
    print("not found")

然而,它不起作用。有谁知道我需要做的调整才能做到正确吗?

提前致谢,

1 个答案:

答案 0 :(得分:0)

你可能正在寻找这个

str1 = 'span class="stars" rel="3.2" style="width:64.0%" title="Rating 3.2 out of 5 stars">/span>'

match = re.findall(r'span.*?rel="(\d+)(\.\d+)".*>/span>', str1)

print (match)

您找不到任何内容的主要原因是因为您的正则表达式需要在跨度后立即relstr1不会跟随。在span和rel之间添加.*?将非贪婪地捕获其他所有内容