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

如何用正则表达式清理Python字符串开头的序号类前缀?

移除字符串开头的序号类前缀解决方案

你之前用的(\W)(\w.*)正则只匹配单个非单词字符,没法覆盖数字、罗马字母加标点的完整前缀结构,我给你调整一下正则逻辑:

正则表达式说明

用^[0-9#IVXLCDM]+[.)]\s*来匹配开头的序号前缀,各部分含义:

  • ^:锚定字符串起始位置,确保只匹配开头的前缀
  • [0-9#IVXLCDM]+:匹配数字、#或者罗马数字字符(I/V/X/L/C/D/M是罗马数字基础字符),+表示至少匹配一个
  • [.)]:匹配前缀后的标点(.或))
  • \s*:匹配前缀后可能存在的任意数量空格(包括零个)

Python代码实现

import re

def clean_string_prefix(input_str):
    # 替换匹配到的前缀为空字符串
    return re.sub(r'^[0-9#IVXLCDM]+[.)]\s*', '', input_str)

# 测试示例
test_cases = [
    "1. bla bla",
    "#. bla bla",
    "3) bla bla",
    "I. bla bla",
    "XII. hello world",  # 额外测试多字符罗马数字
    "5)   test with multiple spaces"  # 测试多空格情况
]

for case in test_cases:
    print(f"原字符串: {case} → 处理后: '{clean_string_prefix(case)}'")

运行后所有测试用例都会得到你期望的结果。如果还有其他特殊前缀格式(比如带括号的(1)),可以再扩展正则里的匹配规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 02:20:54