1

我正在尝试解析以下字符串:

编辑以考虑空间...

['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

想法?

4

3 回答 3

0

试试这个代码片段:

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
于 2012-05-28T18:04:07.143 回答
0

一种可能性是用于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
于 2012-05-28T16:59:00.963 回答
0
InfoL = re.split("[, '()\[\]]*", Info)
于 2012-05-28T17:00:08.593 回答