You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python正则匹配重复文本块中第三行的浮点数?

提取Expected行浮点数的正则方案

直接用这个正则表达式就能精准提取每段第三行里的浮点数:

^Expected : (-?\d+(?:,\d+)?)

正则拆解(针对不熟悉正则的你)

  • ^:在多行模式下,匹配每一行的开头,确保只找以Expected : 开头的行
  • Expected : :完全匹配固定的前缀文本,避免误匹配其他行
  • (-?\d+(?:,\d+)?):捕获需要的浮点数,各部分作用:
    • -?:匹配可选的负号(支持负数)
    • \d+:匹配1位或多位整数(比如0、10、-5里的整数部分)
    • (?:,\d+)?:可选的小数部分,?:表示这是个非捕获组(不单独提取这部分),,\d+匹配逗号加1位或多位数字,?表示小数部分可以没有(支持整数形式的数值)

使用注意

要开启多行模式(不同语言里设置方式不同):

  • Python中用re.MULTILINE或缩写re.M:
import re

text = """Test
Choice : Q1
Expected : 0,5
Test
Choice : Q1
Expected : -3,14
Test
Choice : Q1
Expected : 10
"""

results = re.findall(r"^Expected : (-?\d+(?:,\d+)?)", text, re.M)
print(results)  # 输出: ['0,5', '-3,14', '10']
  • JavaScript中用/gm标志:
const text = `Test
Choice : Q1
Expected : 0,5
Test
Choice : Q1
Expected : -3,14
Test
Choice : Q1
Expected : 10`;

const regex = /^Expected : (-?\d+(?:,\d+)?)/gm;
const results = [...text.matchAll(regex)].map(match => match[1]);
console.log(results); // 输出: ['0,5', '-3,14', '10']

这个正则能覆盖你提到的-10到10范围内的所有情况,包括整数、带逗号小数的正数和负数。

内容的提问来源于stack exchange,提问作者Jin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 07:50:31