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

如何使用正则表达式去除带<|>分隔符字符串的多余空白并修复异常输出

问题原因分析

  • 正则表达式存在语法错误:空白字符匹配应使用\s而非s,同时分隔符<|>中的|是正则特殊字符,必须转义才能匹配字面量,原正则未转义导致匹配逻辑完全不符合预期,才会产生多余的分隔符。
  • 原有逻辑没有覆盖「分隔符后接换行+空白」的场景,导致跨行的日期字段前的空白没有被清除。

修复后的完整代码

import re
test_str = '''PERSON_ID<|>DEPT_ID<|>DATE_JOINED
    AAAAA<|>S1<|>2021/01/03
    BBBBBB<|>S2<|>
    2021/02/03
    CCCCC<|>S1<|>2021/03/05'''

# 匹配<|>前后的所有空白(包括换行),替换为单个<|>
regex = r'\s*<\|>\s*'
subst = "<|>"
# 先替换所有分隔符周围的空白,再按换行拆分,过滤空行后输出
for line in re.sub(regex, subst, test_str).split('\n'):
    line = line.strip()
    if line:
        print(line)

输出结果

PERSON_ID<|>DEPT_ID<|>DATE_JOINED
AAAAA<|>S1<|>2021/01/03
BBBBBB<|>S2<|>2021/02/03
CCCCC<|>S1<|>2021/03/05

优化说明

  • 正则\s*<\|>\s*可以匹配分隔符前后任意数量的空白字符(包含空格、制表符、换行符),一次性把分隔符周围的多余内容全部清理,自动把跨行的字段拼接回同一行的分隔符后。
  • 不需要加re.MULTILINE参数,当前匹配逻辑已经可以覆盖跨行空白的场景。
  • 拆分后逐行strip过滤空行,确保行首行尾没有多余空白。

内容的提问来源于stack exchange,提问作者Barney-LoveStudy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:36:05