我正在尝试解析以下字符串:
编辑以考虑空间...
['THE LOCATION', 'THE NAME', 'THE JOB', 'THE AREA')]
现在我使用正则表达式并用逗号将数据拆分成一个列表
InfoL = re.split(",", 信息)
但是我的输出是
'THE LOCATION'
'THE NAME'
'THE JOB'
'THE AREA')]
期待输出如下
THE LOCATION
THE NAME
THE JOB
THE AREA
想法?
试试这个代码片段:
import re
tmpS = "['THE LOCATION', 'THE NAME', 'THE JOB', 'THE AREA')]"
tmpS = re.sub('[^\w\s,]+', '', tmpS)
print tmpS # Result -> 'THE LOCATION, THE NAME, THE JOB, THE AREA'
for s in tmpS.split(','):
print s.strip()
O/P:
THE LOCATION
THE NAME
THE JOB
THE AREA
一种可能性是用于strip()删除不需要的字符:
In [18]: s="['LOCATION', 'NAME', 'JOB', 'AREA')]"
In [19]: print '\n'.join(tok.strip("[]()' ") for tok in s.split(','))
LOCATION
NAME
JOB
AREA
就像您的原始解决方案一样,如果允许任何字符串包含逗号,这将中断。
PS如果您示例中的右括号是错字,您可以使用ast.literal_eval():
In [22]: print '\n'.join(ast.literal_eval(s))
LOCATION
NAME
JOB
AREA
InfoL = re.split("[, '()\[\]]*", Info)