我有这样一个字符串:
var hours_tdate = ['22','23','<span style="color:#1d953f;">0</span>','<span style="color:#1d953f;">1</span>'];
这是一个js文件的一部分。现在我想使用正则表达式从上面的字符串中提取数字,并得到如下输出:
[22,23,0,1]
我试过:
re.findall('var hours_tdate = \[(.*)\];', string)
它给了我:
'22','23','<span style="color:#1d953f;">0</span>','<span style="color:#1d953f;">1</span>'
我不知道为什么我试的时候没有匹配:
re.findall('var hours_tdate = \[(\d*)\];', string)
请您参考如下方法:
使用\d+ 和单词边界来只提取数字
\b\d+\b
Python 代码
p = re.compile(r'\b\d+\b')
test_str = "var hours_tdate = ['22','23','<span style=\"color:#1d953f;\">0</span>','<span style=\"color:#1d953f;\">1</span>'];"
print(re.findall(p, test_str))
注意 :- 即使变量名中会有数字,只要您的变量格式正确就没有关系
