美文网首页
Python 切割/分隔多空格的英文字符串

Python 切割/分隔多空格的英文字符串

作者: 黑鼠_DEAN | 来源:发表于2018-06-17 09:49 被阅读0次

    前言

    许多朋友在使用python的时候,经常会碰到各种各样的字符串切割问题。最简单固定字符切割的使用split能轻松搞定,但是往往碰到复杂就无从下手了,有时候明知道要使用正则表达式,可就是不知道如何写。
    这几天帮兄弟做个小程序,刚好也同样碰到了这个问题,经过一番研究之后,终于搞定。这里将解决思路记录下来,也希望能够帮到大家。
    喜欢的就点个赞吧!^_^

    故事

    一个不懂电脑的小白老外,在EXCEL表格中喜欢用多个空格作为分隔(佩服它敲空格的那股劲)可他这么操作硬是让我头疼了一会,今天在这里把方法记录写来方便日后使用。
    首先我们来看看多空格的英文字符串长啥样 : )

       ANNO METAL          5/16-NOIR            1 ROLL 
    

    期望变成这样(如下):单词之间的空格不丢失,能够将多空格作为分隔符

       ANNO METAL|5/16-NOIR|1 ROLL|
    

    思路

    1. 非特定空格数量,所以毫无疑问使用正则表达式;
    2. 正则表达式切割是按单字符匹配的,所以无法之间用来切割字符串;
    3. 将匹配到的字符串替换为特定字符,然后再切割;
    4. 特定字符,不能和字符串常见字符重合,所以选择 |字符;

    写法

            # 原始字符串
            desc = "ANNO METAL            5/16-NOIR           1 ROLL"
            #替换多个空格为'|'
            desc = re.sub("\s\s+","|",desc)
            #以'|'字符切割字符串
            data = desc.split("|")
    

    正则表达式说明:
    \s:匹配任何不可见字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]
    >+:匹配前面的子表达式一次或多次
    \s\s+ :即两个空格以上的字符串(这里这样写包含非可见字符,怕那小白老外用TAB键,这样切割就异常了。

    输出

       [u'ANNO METAL', u'5/16-NOIR', u'1 ROLL', u'']
    

    相关文章

      网友评论

          本文标题:Python 切割/分隔多空格的英文字符串

          本文链接:https://www.haomeiwen.com/subject/ipnieftx.html