正则表达式过滤字符串以查找以给定单位列表结尾的值

2024-09-22 10:18:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要从以下文本中检索信息:

"od 01. 01. 2015 do 28. 06. 2026 pevnú cenu elektriny pre stanovenie doplatku vo výške 387,65 eura/MWh, vyrobenej zo slnečnej energie v zariadení výrobcu elektriny s celkovým inštalovaným výkonom 4,82 kW, umiestnenom na streche Múzea"

从上面的字符串中,我需要找到并返回4,82 kW。单位也可以是MWkWp。我想忽略387,65 eura/MWh的实例

我尝试在Python中使用以下正则表达式:

matches = re.findall(r'\d+\,\d+\s', text)

但是这返回了"387,65"

我不仅要捕捉数字,还要捕捉单位


Tags: 文本信息单位predokwodvo
1条回答
网友
1楼 · 发布于 2024-09-22 10:18:48

以下正则表达式应该起作用:

\d+\,\d+\s(?:MW|kWp|kW)

代码:

text = "od 01. 01. 2015 do 28. 06. 2026 pevnú cenu elektriny pre stanovenie doplatku vo výške 387,65 eura/MWh, vyrobenej zo slnečnej energie v zariadení výrobcu elektriny s celkovým inštalovaným výkonom 4,82 kW, umiestnenom na streche Múzea "

print(re.findall(r'\d+\,\d+\s(?:MW|kWp|kW)', text))

输出:

['4,82 kW']

如果希望小数点(在本例中为十进制逗号)是可选的,可以使用:

\d+\,?\d+\s(?:MW|kWp|kW)

相关问题 更多 >