2014-09-22 32 views
0

我有一个这样的字符串:拆分Python中的字符串)和空间后

'srv1(compA1 compA2) srv2(compA3 compA2) srv3(comp4 comp5)' 

我需要像这样分割:

['srv1(compA1 compA2)', 'srv2(compA3 compA2)', 'srv3(comp4 comp5)' ] 

我试图通过空间分割,但它分裂COMP1 COMP2的内部串...

+0

结帐['re.split'](https://docs.python.org/2/library/re.html#re.split) – GP89 2014-09-22 10:10:35

回答

3
In [9]: import re 

In [10]: string = 'srv1(compA1 compA2) srv2(compA3 compA2) srv3(comp4 comp5)' 

In [11]: re.split(r'(?<=\)) ', string) 
Out[11]: ['srv1(compA1 compA2)', 'srv2(compA3 compA2)', 'srv3(comp4 comp5)'] 
+0

感谢它完美的作品 – 2014-09-22 10:19:48

0

简单,你可以试试这个方法

a='srv1(compA1 compA2) srv2(compA3 compA2) srv3(comp4 comp5)' 
print a.replace(' s','###s').split('###') 

#output 
['srv1(compA1 compA2)', 'srv2(compA3 compA2)', 'srv3(comp4 comp5)'] 

,或者您可以使用regular expression

0

你可能分裂上“)”,然后添加“)”回到这样的:

line = 'srv1(compA1 compA2) srv2(compA3 compA2) srv3(comp4 comp5)' 
[e if e.endswith(')') else e + ')' for e in line.split(') ')] 
['srv1(compA1 compA2)', 'srv2(compA3 compA2)', 'srv3(comp4 comp5)'] 

这是一个有点难看,但它的工作原理。