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

如何用正则表达式提取Kunde:与Artikel:间带换行的地址数据?

提取「Kunde:」与「Artikel:」间地址(保留换行)的正则方案

要提取这两个标记之间的地址并保留原换行格式,核心是让正则能匹配换行符,以下是具体实现:

核心正则

Kunde:\s*(.*?)\s*Artikel:

关键要点:

  • 必须开启单行模式(DOTALL/Singleline):默认情况下.不匹配换行,开启后.会匹配包括换行在内的所有字符,才能完整捕获地址的多行内容。
  • .*?是非贪婪匹配:确保匹配到第一个「Artikel:」就停止,不会误捕后面的内容。
  • \s*用来兼容标记前后的空白(换行、空格都算),如果你的标记和地址紧挨着,可直接去掉改成Kunde:(.*?)Artikel:。

常用场景示例

Python

用re.DOTALL开启单行模式:

import re

source_text = """
Kunde:
Musterstraße 123
12345 Musterstadt
Deutschland
Artikel:
Produkt XY
"""

match_result = re.search(r'Kunde:\s*(.*?)\s*Artikel:', source_text, re.DOTALL)
if match_result:
    address = match_result.group(1).strip()  # strip可选,按需去除首尾多余空白
    print(address)

输出会完整保留原换行:

Musterstraße 123
12345 Musterstadt
Deutschland

JavaScript(ES2018+)

用/s标志开启单行模式:

const sourceText = `
Kunde:
Musterstraße 123
12345 Musterstadt
Deutschland
Artikel:
Produkt XY
`;

const regex = /Kunde:\s*(.*?)\s*Artikel:/s;
const match = sourceText.match(regex);
if (match) {
  const address = match[1].trim();
  console.log(address);
}

文本编辑器(VS Code、Sublime等)

在查找功能里勾选「正则表达式」和「.匹配新行」选项,直接用上述正则就能选中目标内容,复制即可。

额外提示

如果文本里有多组「Kunde:」和「Artikel:」,要批量提取的话:

  • Python用re.findall替代re.search
  • JavaScript给正则加/g标志,配合exec循环获取所有结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 04:25:21