2010-11-19 98 views
0

鑑於串s = '(A /something_1)(B /something_2)(C /something_3),/,(D /something_4)(D /something_5)'蟒蛇正則表達式分組

我想獲得這個輸出:(C /something_3),/,(D /something_4)(D /something_5)

我把匹配整個字符串s,而不是讓上述子。

我使用re.search(r'(\(C.*\)),/,(\(D.*\))+')

任何幫助表示讚賞...

回答

4

你只是那裏 - re.search(r'(\(C.*\)),/,(\(D.*\))+', s).group()會得到你想要的東西。

>>> import re 
>>> s = '(A /something_1)(B /something_2)(C /something_3),/,(D /something_4)(D /something_5)' 
>>> re.search(r'(\(C.*\)),/,(\(D.*\))+', s).group() 
'(C /something_3),/,(D /something_4)(D /something_5)' 

想要進一步分組嗎?

1

使用Python 2.7,我得到確切的結果你後:

import re 
s = '(A /something_1)(B /something_2)(C /something_3),/,(D /something_4)(D /something_5)' 
m = re.search(r'(\(C.*\)),/,(\(D.*\))+', s) 

s[m.start():m.end()] == '(C /something_3),/,(D /something_4)(D /something_5)'