为什么Python在split()返回的数组中添加额外的引号?

时间:2014-04-26 00:46:25

标签: regex python-2.7

以下是要解析的相关数据:

alternateClassName: 'FutureSurvey',
alternateClassName: ['HardwareSurvey'],
alternateClassName: ['OptimismSurvey', 'OptimismSurveyTwo']

这是我的正则表达式:

alternate_regex = re.compile('.*?alternateClassName\s*:\s*(\[\s*(.*?)\s*\]|[\'\"]\s*(.*?)\s*[\'\"]).*', re.M)

这是我的代码:

alternate_match = alternate_regex.match(line)
if alternate_match and alternate_match.group and alternate_match.group(1):
    alternateList = alternate_match.group(1).strip().split(',')
    print alternateList
    dependent_mapping[classpathTxt]['alternateList'] = alternateList

以下是打印的内容:

["'FutureSurvey'"]
["['HardwareSurvey']"]
["['OptimismSurvey',", "'OptimismSurveyTwo']"]

我原本预料到了这一点:

['FutureSurvey']
['HardwareSurvey']
['OptimismSurvey', 'OptimismSurveyTwo']

任何人都知道发生了什么事?

1 个答案:

答案 0 :(得分:1)

您的.strip()没有做任何事情,因为它没有参数。而是将其替换为.strip("'")

>>> x = "'hello'"
>>> x.strip()
"'hello'"
>>> x.strip("'")
'hello'
>>>