首页 文章

Python:如何从字符串中的数字中删除空格

提问于
浏览
-1

我想从PYTHON中删除字符串中的空格:

  • 示例:

Lorem ipsum dolor sit amet,consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua . Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris 850 152 nisi ut aliquip ex ea commodo consequat . Duis aute irure 360 458 000 dolor in repreptderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur . Excepteur sint occaecat cupidatat non proident,sunt in culpa qui officia deserunt mollit anim id est laborum .

想要

  • 结果:

Lorem ipsum dolor sit amet,consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua . Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris 850152 nisi ut aliquip ex ea commodo consequat . Duis aute irure 360458000 dolor in repreptderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur . Excepteur sint occaecat cupidatat non proident,sunt in culpa qui officia deserunt mollit anim id est laborum .

2 回答

  • 2

    您可以使用 re.sub 函数,如下所示,

    re.sub(r'(?<=\d)\s(?=\d)', r'', string)
    

    DEMO

    OR

    替换一个或多个空格字符 .

    re.sub(r'(?<=\d)\s+(?=\d)', r'', string)
    

    例:

    >>> import re
    >>> s = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris 850 152 nisi ut aliquip ex ea commodo consequat. Duis aute irure 360 458 000 dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
    >>> re.sub(r'(?<=\d)\s(?=\d)', r'', s)
    'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris 850152 nisi ut aliquip ex ea commodo consequat. Duis aute irure 360458000 dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
    

    Regular Expression:

    (?<=                     look behind to see if there is:
      \d                       digits (0-9)
    )                        end of look-behind
    \s+                      whitespace (\n, \r, \t, \f, and " ") (1 or
                             more times)
    (?=                      look ahead to see if there is:
      \d                       digits (0-9)
    )                        end of look-ahead
    
  • 2
    (?<=\d)[ ]+(?=\d)
    

    您可以尝试使用 re 模块 .

    见演示 .

    http://regex101.com/r/yP3iB0/22

    import re
    p = re.compile(ur'(?<=\d)[ ]+(?=\d)')
    test_str = u"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris 850 152 nisi ut aliquip ex ea commodo consequat. Duis aute irure 360 458 000 dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
    subst = u""
    
    result = re.sub(p, subst, test_str)
    

相关问题