在python中提取指定字符之间的字符串

2024-10-03 23:22:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我是正则表达式的新手,我有以下字符串:

sequence = '["{\"First\":\"Belyuen,NT,0801\",\"Second\":\"Belyuen,NT,0801\"}","{\"First\":\"Larrakeyah,NT,0801\",\"Second\":\"Larrakeyah,NT,0801\"}"]'

我试图在python中提取文本Belyuen,NT,0801和{}。我有以下代码不起作用:

^{pr2}$

也就是说,我想得到字符:\\之间的字符串。在


Tags: 字符串代码文本字符firstsequencesecond新手
3条回答

不要为此使用regex。它似乎是一组非常奇怪的JSON字符串。将它们重新连接起来并使用json模块对其进行解码。在

import json
sequence = '[%s]' % ','.join(sequence)
data = json.loads(sequence)
print data[0]['First'], data[0]['Second']

(注意json模块是Python2.6中的新模块—如果您有较低版本,请下载并安装simplejson)。在

这似乎是Python dict的正确序列化,您只需执行以下操作:

>>> sequence = ["{\"First\":\"Belyuen,NT,0801\",\"Second\":\"Belyuen,NT,0801\"}","{\"First\":\"Larrakeyah,NT,0801\",\"Second\":\"Larrakeyah,NT,0801\"}"]
>>> import json
>>> for i in sequence:
    d = json.loads(i)
    print(d['First'])


Belyuen,NT,0801
Larrakeyah,NT,0801

你不需要正则表达式

>>> sequence = ["{\"First\":\"Belyuen,NT,0801\",\"Second\":\"Belyuen,NT,0801\"}","{\"First\":\"Larrakeyah,NT,0801\",\"Second\":\"Larrakeyah,NT,0801\"}"]
>>> for item in sequence:
...  print eval(item).values()
...
['Belyuen,NT,0801', 'Belyuen,NT,0801']
['Larrakeyah,NT,0801', 'Larrakeyah,NT,0801']

相关问题 更多 >