将字符串拆分为组

时间:2015-10-30 10:44:20

标签: python regex string string-algorithm

我有一个像Delete File/Folder这样的字符串。我需要根据相当于/的{​​{1}}来打破句子。

最后需要生成两个字符串,例如or作为一个字符串,Delete File作为另一个字符串。

我尝试过非常天真的方式,检查Delete Folder的索引,然后形成一系列条件的字符串。

当我们有像/这样的字符串时,有时会失败。

修改

如果你在File/Folder Deleted上分开,那么对于案例1,我们有/Delete File。然后我将检查第一个字符串中是否存在空格,并且存在的空格是第二个字符串。

具有较少空格数的那个将被第一个字符串最后一个元素替换。这变得复杂了。

4 个答案:

答案 0 :(得分:2)

对于Delete File/Folder,考虑为DeleteFile这两个词分配的原因可能有助于我们在直觉上做出的固有假设。词法解析。

例如,它将在Folderi之间进行解析,以返回l

听起来您希望根据空格的位置将字符串拆分为单词,然后根据["Delete File", "Delete FiFolder"]拆分每个单词以生成新的完整字符串。

/

答案 1 :(得分:1)

你想要吗?如果您想要更通用的解决方案,请评论。

lst = your_string.split()[1].split("/")

finalList=[]
for i in lst:
    finalList.append("Delete {0}",i)

print finalList

对于字符串:

Delete File/Folder

输出:

['Delete File', 'Delete Folder']

答案 2 :(得分:1)

st1 = "Do you want to Delete File/Folder"
st2 = "File/Folder Updated" 

def spl(st):
    import re
    li = []
    ff = re.search(r'\w+/\w+',st).group()
    if ff:
        t = ff.split('/')
        l = re.split(ff,st)
        for el in t:
            if not l[0]:
                li.append((el + ''.join(l)))
            else:
                li.append((''.join(l) + el))
    return li

    for item in st1,st2:
        print(spl(item))

    ['Do you want to Delete File', 'Do you want to Delete Folder']
    ['File Updated', 'Folder Updated']

答案 3 :(得分:1)

str = "Do you want to Delete File/Folder?"

word = str.split(" ")

count = str.count("/")

c = True

for j in range(0,2*count):
    for i in word:
        if("/" in i):
            words = i.split("/")

            if c:
                print words[1],

            else:
                print words[0],

        else:
            print i, # comma not to separate line 
    c = not c
    print

<强>输出

Do you want to Delete File
Do you want to Delete Folder?