Skip to main content
 首页 » 编程设计

Python使用正则表达式从文本中提取数字

2025年04月02日35haluo1

我有这样一个字符串:

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 

Regex Demo

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)) 

Ideone Demo

注意 :- 即使变量名中会有数字,只要您的变量格式正确就没有关系