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

如何在Python中使用正则表达式匹配特定格式的字符串模式?

解决Python正则匹配特定行的问题

你的原正则表达式有两个核心问题,导致无法匹配到预期结果:

  1. \w匹配范围有限:\w只能匹配字母、数字和下划线,无法包含像I'm里的撇号('),遇到这类字符时匹配会直接中断。
  2. 匹配逻辑过于局限:\w+(?:\s\w+)*?只能匹配由空格分隔的纯单词组合,无法覆盖包含特殊字符的内容。

下面提供两种可行的解决方案:

方案1:匹配换行符间的目标内容

使用[^\n]+匹配换行符之外的所有字符,直接覆盖从\n\d)\s到下一个换行符的全部内容:

import re

text = "xxxxxxxxx.... \n1) Hello world \n2) This is a test \n3) I'm trying to match this pattern \nxxxxxx....."
# 正则模式:匹配换行+数字+)+空格,然后匹配所有非换行字符
pattern = r'\n\d\)\s[^\n]+'
matches = re.findall(pattern, text)

# 处理结果(去掉开头的换行符)
for match in matches:
    print(match[1:])

方案2:利用多行模式匹配整行

启用re.MULTILINE模式,直接匹配以数字)开头的整行内容,逻辑更直观:

import re

text = "xxxxxxxxx.... \n1) Hello world \n2) This is a test \n3) I'm trying to match this pattern \nxxxxxx....."
# 正则模式:匹配行首的数字+)+空格,然后匹配整行剩余内容
pattern = r'^\d\)\s.*$'
matches = re.findall(pattern, text, re.MULTILINE)

# 输出结果
for match in matches:
    print(match)

两种方案都能得到你想要的结果:

1) Hello world
2) This is a test
3) I'm trying to match this pattern

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 17:17:25