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

正则表达式多行匹配异常:无法捕获多行import起始行内容

解决Python re模块多行分组匹配问题

嘿,我来帮你排查这个问题~你遇到的情况是因为第二行的"import"前面有个空格,而你写的正则^(import .+?$)里的^在re.MULTILINE模式下匹配的是每一行的开头,但第二行的行首是空格,不是直接跟着"import",所以这一行没被匹配到。

解决方案

调整正则表达式,允许行首出现任意空白字符(空格、制表符等),用\s*来匹配这些空白:

import re
text = "import alkfa dfa aldkf \n import my name is xyz \n i am working incoverfox"
# 加入\s*匹配行首的空白字符
m = re.findall(r'^\s*(import .+?$)', text, re.MULTILINE)
print(m)

运行这段代码后,输出就会符合你的预期:

['import alkfa dfa aldkf ', 'import my name is xyz ']

补充说明

  • re.MULTILINE模式确实让^和$匹配每一行的开头和结尾,但它不会忽略行首的空白字符,所以必须显式用\s*去匹配这些空白。
  • 如果你的文本里第二行的空格是输入错误,直接去掉空格也能让原正则正常工作,但显然用正则适配空白场景更通用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:17:29