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

求助:如何用正则匹配指定字符串后的单行内容并忽略其余内容

正则提取指定标签下一行内容的解决方案

需求说明

从给定样本数据中,提取CAR、MODEL这类指定标签下一行的内容,忽略该行之后的所有信息。

样本数据

CAR
VW
MODEL
ARTEON
BHP
200

可行正则表达式

匹配单个标签(如MODEL)

(?<=^MODEL$\n).+
  • 解释:
    • ^MODEL$:精准匹配整行的MODEL标签,避免匹配包含该字符串的其他内容
    • (?<=...\n):正向零宽断言,定位到MODEL行的换行符之后
    • .+:匹配下一行的全部内容(直到换行)

匹配多个标签(如CAR和MODEL)

(?<=^(CAR|MODEL)$\n).+
  • 用(CAR|MODEL)指定多个待匹配标签,可一次性捕获所有符合条件的内容

兼容不同换行格式

如果数据使用Windows风格的\r\n换行,可将正则中的\n替换为\r?\n,兼容两种换行格式:

(?<=^MODEL$\r?\n).+

代码示例(Python)

import re

sample = """CAR
VW
MODEL
ARTEON
BHP
200"""

# 提取MODEL对应的内容
match_model = re.search(r'(?<=^MODEL$\n).+', sample, re.MULTILINE)
print(match_model.group() if match_model else "未匹配到")  # 输出:ARTEON

# 提取CAR对应的内容
match_car = re.search(r'(?<=^CAR$\n).+', sample, re.MULTILINE)
print(match_car.group() if match_car else "未匹配到")  # 输出:VW

之前尝试失败的原因

你之前的正则未使用^和$做整行匹配,可能误匹配到包含MODEL的非标签行;另外部分环境下换行符的表示需要明确,直接用\n或\r\n才能准确定位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 12:08:11