2014-12-23 17 views
0

我有一个类似的字符串:如何检查任意数字的字符串?

string = '(1:[0,0,0]; 2:[21,0,12])' 

除了我的字符串的推移千数。

... '4214:[9,93,42])' 

如何选择数字,冒号和左括号?像这样:

'1:[' 
'2:[' 
'2831:[' 
'4214:[' 

我想选择其中的每一个,并用新字符串替换它:'('

+0

你从哪里得到的字符串?可能有一种方法可以直接从源代码转换它。 – Electron

+0

该字符串是源代码。这是一个全局引用来检索数据的文件。 @Electron –

+0

@ Rufflewind的答案是我会这么做的。 – Electron

回答

4

你可以使用一个regular expression

new_string = re.replace(r'[0-9]+:\[', r'\(', string) 

这取代的<number>:[所有出现与(

+0

你有一个额外的')',可能不应该使用'string'。 –

+0

这意味着要覆盖'string',但我意识到这可能会导致混淆。 – Rufflewind

1

您的数据已经在dictioanry的形式。只要做到以下几点:

In [35]: xx = eval(string.replace(";", ',').replace('(', '{').replace(')', '}')) 

结果是字典...

In [36]: xx.keys() 
Out[36]: [1, 2] 

In [37]: xx[2] 
Out[37]: [21, 0, 12] 
相关问题