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

Python正则re.sub移除每行末尾逗号失效,仅移除最后一行逗号的问题

解决每行末尾逗号移除问题

问题描述

尝试用re.sub结合MULTILINE模式移除每行末尾的逗号,但当前代码仅移除了最后一行的逗号:

原代码:

import re

x = """
A,B,C,
1,2,3,
4,5,6,
7,8,9,
"""
x = re.sub(",$","",x,re.MULTILINE)
print(x)

当前输出:

A,B,C,
1,2,3,
4,5,6,
7,8,9

期望输出:

A,B,C
1,2,3
4,5,6
7,8,9

问题原因

Python的re.sub函数签名为re.sub(pattern, repl, string, count=0, flags=0),你之前的写法把re.MULTILINE传给了count参数(而非flags参数),导致MULTILINE模式未被正确启用——此时$仅匹配整个字符串的末尾,而非每行末尾。

正确解决方案

通过关键字参数传递flags,确保MULTILINE模式生效:

import re

x = """
A,B,C,
1,2,3,
4,5,6,
7,8,9,
"""
# 使用关键字参数指定flags
x = re.sub(",$", "", x, flags=re.MULTILINE)
print(x)

或者显式传递count参数(设为0表示替换所有匹配项),再传递flags:

x = re.sub(",$", "", x, 0, re.MULTILINE)

执行后即可得到期望输出,所有行末尾的逗号都会被移除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:55:25