【问题标题】:Python split string at spaces as usual, but keep certain substrings containing space?Python像往常一样在空格处拆分字符串,但保留某些包含空格的子字符串?
【发布时间】:2020-04-09 05:53:00
【问题描述】:

假设我有以下字符串:

>>> aa="63452 [  0] AAA BB CCC"

如果我按照通常的.split() 在空格处拆分,我会得到:

>>> aa.split()
['63452', '[', '0]', 'AAA', 'BB', 'CCC']

我想要获得的是这个列表:['63452', '[ 0]', 'AAA', 'BB', 'CCC']

基本上,第二部分是一个匹配格式的字符串:左方括号 + 没有或更多空白字符 + 没有或更多数字 + 右方括号 - 我可以用这个正则表达式匹配:

>>> import re
>>> re.findall(r'\[\s*\d*\]', aa)
['[  0]']

本质上,我首先要识别“方括号”项,然后拆分为.split() 通常这样做,同时保留“方括号”项。

那么,从给定字符串中获取所需列表的最直接方法是什么?

【问题讨论】:

    标签: python parsing split


    【解决方案1】:

    您可以使用与括号中的字符串或非空格字符匹配的交替模式:

    re.findall(r'\[.*?]|\S+', aa)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-13
      • 2017-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多