【问题标题】:Using the .split() function based on conditions?根据条件使用 .split() 函数?
【发布时间】:2013-11-26 03:36:00
【问题描述】:

如何根据条件使用 .split() 函数?

假设我有原始数据:

Apples,Oranges,Strawberries Green beans,Tomatoes,Broccoli

我的预期结果是:

['Apples','Oranges','Strawberries','Green beans','Tomatoes','Brocolli']

如果有空格和大写字母,是否可以用逗号分隔?

【问题讨论】:

  • 对每个大写字母使用re.split
  • @aIKid:将答案放在答案中,而不是 cmets。
  • @EthanFurman 哈哈。我不太了解正则表达式,我将把它留给你们正则表达式专家。

标签: python list python-3.x split


【解决方案1】:

使用re.split对您所要求的内容进行字面解释:

import re
pat = re.compile(r'\s(?=[A-Z])|,')
pat.split(my_str)

在你的情况下,这更简单:

pat = re.compile(r'.(?=[A-Z])')

基本上,在任何后跟大写字母的字符上拆分。

【讨论】:

    【解决方案2】:

    使用正则表达式将使代码比复杂的拆分语句更简单。

    import re
    ...
    re.findall(", [A-Z]",data)
    

    请注意,您要求对命令、空格、大写字母进行拆分,但在您的示例中,逗号后没有空格。

    【讨论】:

    • re.findall(", [A-Z]",data)?这似乎不会做很多事情。
    • 我将如何使用它?
    • 试试@roippi的解决方案,效果会更好。