不使用正则表达式拆分嵌套引号和逗号

时间:2020-03-24 23:31:43

标签: python python-3.x for-loop if-statement split

当我运行代码时,似乎有一个错误,该代码可帮助我拆分但保持逗号,但如果两个链接在一起,则应保留引号。似乎三个引号链接在一起

输入

Result = parseCSV('""')
print(Result)

预期产量

['"']

实际输出

['']

代码:

def parseCSV(string):

    results = []
    current = ''
    is_quoted_right_now = False
    in_quotes = False


    for i in range(0, len(string)):
        currentletter = string[i]

        if currentletter == '"':
            if is_quoted_right_now == True:
                if in_quotes == True:
                    current = current + currentletter
                    in_quotes = False 
                else:
                    in_quotes = True

            else:
                is_quoted_right_now = True
                in_quotes = False

        else:

            shouldCheck  = False

            if is_quoted_right_now == True:

                if in_quotes == True:
                    is_quoted_right_now = False
                    in_quotes = False

                    shouldCheck = True

                else:
                    current = current + currentletter

            else:
                shouldCheck = True

            if shouldCheck == True:
                if currentletter == ',':
                    results.append(current)
                    current = ''

                else:
                    current = current +  currentletter

    results.append(current)
    return results

这是一些测试和结果:

Result = parseCSV('","')
print(Result)
#result = [',']

Result = parseCSV('"""')
print(Result)
#result = ["]

Result = parseCSV('hi,i,am,splitting')
print(Result)
#result = ['hi','i','am','splitting']

Result = parseCSV('"hi,I,am,not,splitting"')
print(Result)
#result = ['hi,I,am,not,splitting']

Result = parseCSV('abc, """')
print(Result)
#result = ['abc', '"']

Result = parseCSV('abc, ""')
print(Result)
#result = ['abc','']
#wanted result = ['abc','"']

您可以看到,只有一个问题,我父亲说我必须使用没有模块的纯python,因此任何人都可以在不使用正则表达式之类的情况下提供帮助

谢谢!

我真的很希望有人发布示例代码,谢谢!!

0 个答案:

没有答案