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

如何用正则表达式(regex)查找指定单词下方的数字?

匹配指定单词下方的数字解决方案

示例文本

Property Size
Jerusalem 811.00
A new property agreement

核心思路

要获取"Size"所在行下一行的数字,核心是先定位到包含"Size"的行,再从下一行中提取目标数字。下面提供两种实用方案:


方案1:多行正则匹配(适合支持正则多行模式的场景)

利用正则的多行模式,直接匹配包含"Size"的行,再捕获下一行的数字。

正则表达式

^.*Size.*$\n.*?(\d+\.\d+)

表达式解释

  • ^.*Size.*$:匹配任意包含"Size"的完整行
  • \n:匹配换行符,定位到下一行
  • .*?:非贪婪匹配下一行开头的无关内容(比如示例中的"Jerusalem ")
  • (\d+\.\d+):捕获小数格式的目标数字

Python代码实现

import re

text = """Property Size
Jerusalem 811.00
A new property agreement"""

# 启用多行模式(re.MULTILINE)
match = re.search(r'^.*Size.*$\n.*?(\d+\.\d+)', text, re.MULTILINE)
if match:
    print(match.group(1))  # 输出结果:811.00

方案2:分行定位提取(直观易读,适合新手)

先把文本按行拆分,找到包含"Size"的行的位置,再取下一行内容并提取数字。

Python代码实现

import re

text = """Property Size
Jerusalem 811.00
A new property agreement"""

lines = text.splitlines()
for idx, line in enumerate(lines):
    if 'Size' in line:
        # 确保下一行存在,避免索引越界
        if idx + 1 < len(lines):
            next_line = lines[idx+1]
            # 从下一行提取数字
            num_result = re.search(r'\d+\.\d+', next_line)
            if num_result:
                print(num_result.group())  # 输出结果:811.00
        break

注意事项

  • 如果文本中存在多个包含"Size"的行,可根据需求调整逻辑(取第一个匹配行的下一行,或遍历所有匹配行)
  • 若数字格式可能为整数(如811),可将数字匹配正则改为(\d+(?:\.\d+)?),兼容整数和小数格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:20:37