0

私はPythonでの文字列を持っています

str1 = 'abc(1),bcd(xxx),ddd(dfk dsaf)'

re を使用して「結果」と言うオブジェクトに解析する方法は次のとおりです。

for k,v in results:
   print('key = %r, value = %r', (k, v)) 

ありがとう。

4

4 に答える 4

1

以下も使用できますfinditer

>>> p = re.compile(r'(\w+)\((.*?)\)')
>>> {x.group(1):x.group(2) for x in p.finditer(str1)}
{'bcd': 'xxx', 'abc': '1', 'ddd': 'dfk dsaf'}
>>> 
于 2013-07-12T01:26:49.407 に答える
0

ピンチで、正規表現に頼らずにそれを行うことができます

 str1 = 'abc(1),bcd(xxx),ddd(dfk dsaf)'
 results = [x.split('(') for x in str1.split(',')]
 results = [(x, y.rstrip(')')) for x, y in results]
 print results
 [('abc', '1'), ('bcd', 'xxx'), ('ddd', 'dfk dsaf')]
于 2013-07-12T01:29:10.920 に答える
0
str1 = 'abc(1),bcd(xxx),ddd(dfk dsaf)'

import re
d = dict(re.findall('(\w+)\((.*?)\)', str1))
# {'bcd': 'xxx', 'abc': '1', 'ddd': 'dfk dsaf'}

for k,v in d.iteritems():
    # do whatever
于 2013-07-12T01:33:25.310 に答える