【问题标题】:How to get rid of \r\n from a string?如何从字符串中删除 \r\n ?
【发布时间】:2021-12-06 06:35:12
【问题描述】:

我最近不得不升级到Jython 2.7.2。我将一个 Java 地图实例发送到我的 python 脚本中。

以前我的 python 脚本会打印出地图中的键、值,格式如下

message: Community: public

这个相同的字符串现在显示为

u'message': u'Community:\t\tpublic\r

通过执行以下操作,我设法摆脱了 u' 前缀

encode(encoding = 'UTF-8', errors = 'strict')

但我仍然在字符串中留下\t\r

'message': 'Community:\t\tpublic\r

从字符串中手动删除这些感觉非常笨拙。有没有什么好的实用方法可以帮助我保留 pre 2.7.7 对字符串的处理?

【问题讨论】:

  • 好吧,遵循笨拙的方式,您可以使用替换来摆脱 \t 和 \r。但是我对 Jython 的了解不足以解决根本原因,这也是为什么这是评论而不是答案的原因!

标签: jython jython-2.7


【解决方案1】:

为什么不使用toString() 方法,然后替换不需要的字符?

示例代码:

import java.util.HashMap as HashMap
import re


def test_2():
    my_map = HashMap()
    inner_map = HashMap()
    inner_map.put("community", "public")
    my_map.put("message", inner_map)

    print re.sub(r"[{}]*", "", my_map.toString()).replace("=", ": ")


if __name__ == '__main__':
    test_2()

输出:

message: community: public

【讨论】:

    【解决方案2】:

    通常\r这个字符来自一个windows的文件,最简单的摆脱它们的方法就是使用replace

    mystring = u'asd\r'
    mystring = mystring.replace("\r", "")
    print(repr(mystring))
    

    给出输出:

    u'asd'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-20
      • 2022-01-24
      • 2011-05-10
      • 2016-01-05
      • 2019-02-04
      • 2019-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多