【问题标题】:Split at number-letter按数字字母拆分
【发布时间】:2021-11-06 18:38:55
【问题描述】:

我想将 'E100N05' 拆分为 ['E100', 'N05'] , 所以在一个数字后拆分成字母 N、E、S 或 W。字母后的位数可以不同。

import re
re.split('[NSEW$*]', 'E100N05')
Out[8]: ['', '100', '05']

What I want : ['E100','N05']

我应该使用哪种模式?

【问题讨论】:

    标签: python python-3.x regex string re


    【解决方案1】:

    试试这个:

    >>> re.split('(?!^)(?=[NSEW$])', 'E100N05')
    ['E100', 'N05']
    >>> 
    

    【讨论】:

      【解决方案2】:

      您可以使用re.findall(),如下所示:

      import re
      re.findall('[NSEW$*]\d+', 'E100N05')
      # ['E100', 'N05']
      

      【讨论】:

        【解决方案3】:

        我们如何重新表述这个问题,而不是“拆分”,我们只找到所有字母+数字标记,所以:

        import re
        
        res = re.findall('[a-z]+\d+', 'E100N05', re.I)
        
        print(res)
        

        输出:

        ['E100', 'N05']
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-09-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-02-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多