簡體   English   中英

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

[英]Extracting a string between specified characters in python

我是正則表達式的新手,並且具有以下字符串:

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

我正在嘗試在python中提取文本Belyuen,NT,0801Larrakeyah,NT,0801 我有以下代碼無法正常工作:

re.search('\:\\"...\\', ''.join(sequence))

即我想獲取字符:\\\\之間的字符串。

不要為此使用正則表達式。 它似乎是一組相當奇怪的JSON字符串集合。 將它們重新結合在一起,並使用json模塊對其進行解碼。

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

(請注意,json模塊是Python2.6中的新增功能-如果您的版本較低,請下載並安裝simplejson)。

看起來像是對python字典的正確序列化,您可以這樣做:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM