【问题标题】:Strip all whitespaces EXCLUDING tabs去除所有空格,不包括制表符
【发布时间】:2017-09-06 08:05:43
【问题描述】:

只是一个(希望如此)简单的问题。
用 Python 做一些乱七八糟的事情,我只想知道如何去除所有空格 except 用于制表符的字符串的左侧和右侧,或者更确切地说是\t

我知道我可以用 replace 递归循环,但这很麻烦。一定有更简单的方法。

基本上只是删除\n, ,\r,...等,除了\t
干杯。

【问题讨论】:

    标签: python string removing-whitespace


    【解决方案1】:

    你也可以使用:

    s = "  \t a string example\t  "
    s = s.strip(' \n\r')
    

    这将从字符串的左侧、右侧或两侧删除任何空格、\n 或 \r 字符。

    参考:How to trim whitespace (including tabs)?

    【讨论】:

    • 可爱!感谢那。没有意识到 strip() 函数需要 args。
    【解决方案2】:

    使用re.sub

    import re
    
    string = 'Hello\nThis is   a sample\tstring\n\r!'
    print(re.sub('[ \n\r]', '', string))
    

    【讨论】:

    • 又短又甜!我唯一的问题是,正则表达式中的空格似乎也在拾取我的标签,并且我 确定 他们的标签并没有转换为四个空格...
    • 此解决方案还将删除字符串内部的空格、\n 和 \r,而不仅仅是从左侧和右侧。
    【解决方案3】:
    s.strip(' ').strip('\n').strip('\r')#this will return a copy of string with '\r' and '\b' removed from left side and right side. 
    

    见:string.strip

    【讨论】:

    • 也会去除\t,并且不会去除\b,因为strip()会去除所有包含制表符的空白字符。
    猜你喜欢
    • 1970-01-01
    • 2012-05-29
    • 2019-03-04
    • 1970-01-01
    • 2010-11-09
    • 2015-01-13
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    相关资源
    最近更新 更多