【发布时间】:2019-09-30 13:30:29
【问题描述】:
我正在尝试将一个句子拆分为三个不同的变量以供以后使用,并且我需要指定一些规则以按照我需要的方式拆分它。
例句:
sentence = 'SUPER Jumper Colour BROWN-8'
由此我需要三个变量
textBeforeColour = 'SUPER Jumper Colour'
Colour = 'BROWN'
Size = '8'
PS。颜色 (BROWN-8) 将始终为大写字母 颜色(BROWN-8)之前的任何内容都可能有一些大写字母,但不是全部。
我已经创建了一个可以做到这一点的脚本,但我知道如果文本稍有变化,脚本就会中断。例如
import re
text = 'SUPER Jumper Colour BROWN-8'
list = text.split()
myList = []
lastWord = list[-1]
for iterating_var in list:
if iterating_var is not list[-1]: #THIS GIVES ME THE 'BEFORE COLOUR' TEXT
myList.append(iterating_var)
if lastWord == 'SIZE':
print('ONE SIZE') #This is used when the Size is not a number but comes as ONE SIZE
else:
splitText = re.split('-',lastWord)
print(splitText[0])
print(splitText[1])
Colour = splitText[0]
size = splitText[1]
现在这一切都奏效了。但如果字符串将使用颜色:LIGHT BLUE - 此脚本将使用句子变量而不是颜色变量保留“LIGHT”。
【问题讨论】:
-
对原始问题的小修改。我意识到有些句子可能以字母大小结尾,例如(SUPER Jumper Color BROWN-S)或在某些情况下(SUPER Jumper Color BROWN-S/M)。 - 有谁知道可能如何让这条规则参与进来? @帕特里克
标签: python-3.x string split