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

Python移除字符串多余字符问题:清理后出现rn字符如何解决

问题描述

原字符串定义:

text = """'select \\"ORDER_ID\\",\r\n    \\"LINE_ID\\",\r\n    \\"PRODUCT_ID\\",\r\n    \\"CUSTOMER_ID\\",\r\n    \\"PAYMENT_METHOD\\",\r\n    \\"STATUS\\",\r\n    \\"DATETIME_ORDER_PLACED\\",\r\n    \\"DATETIME_ORDER_SHIPPED\\",\r\n    \\"ORDER_QTY\\",\r\n    \\"ORDER_AMOUNT\\",\r\n    \\"ORDER_COST\\",\r\n    \\"ORDER_VAT\\",\r\n    \\"SHIPPING_COSR\\"\r\nfrom \\"DEMO\\".\\"DEMO\\".\\"ORDERS\\""""

尝试的清理代码:

text = text.replace("\'", '').replace('"', '')

得到的异常结果:

'select ORDER_ID,rn    LINE_ID,rn    PRODUCT_ID,rn    CUSTOMER_ID,rn    PAYMENT_METHOD,rn    STATUS,rn    DATETIME_ORDER_PLACED,rn    DATETIME_ORDER_SHIPPED,rn    ORDER_QTY,rn    ORDER_AMOUNT,rn    ORDER_COST,rn    ORDER_VAT,rn    SHIPPING_COSRrnfrom DEMO.DEMO.ORDERS

执行text = text.strip('\r\n')无效,无法去除中间的rn字符。

解决方法

原因说明

你看到的rn是原字符串中**换行符\r\n**在输出时被显示为字面量字符,strip('\r\n')仅能移除字符串首尾的换行符,无法处理中间的换行内容。

清理代码

可以直接替换掉所有的\r\n及后续的多余空格,同时清理引号:

# 移除单引号和双引号
text = text.replace("'", "").replace('"', '')
# 替换换行符+4个空格为单个空格(按需调整,也可保留换行)
text = text.replace('\r\n    ', ' ').replace('\r\n', ' ')
# 去除首尾多余空格
text = text.strip()

执行后得到的干净SQL语句:

select ORDER_ID, LINE_ID, PRODUCT_ID, CUSTOMER_ID, PAYMENT_METHOD, STATUS, DATETIME_ORDER_PLACED, DATETIME_ORDER_SHIPPED, ORDER_QTY, ORDER_AMOUNT, ORDER_COST, ORDER_VAT, SHIPPING_COSR from DEMO.DEMO.ORDERS

如果需要保留换行格式,只需把replace('\r\n ', ' ')换成replace('\r\n ', '\n')即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:35:25