2014-10-21 109 views
0

我有一个字符串,它看起来像这样:蟒蛇正则表达式,而不是分裂

"(98119,m1) (229260,m1) (15652,m2)" 

以上可以是元素(只有3个在我的例子)

任意数量的我想返回看起来像这样的字符串

"98119 229260 15652" 

我可以使用字符串拆分,但这将会是太多的代码。我正在研究正则表达式,但是正则表达式并不是我擅长的。任何人都可以建议如何做到这一点?

回答

4

您可以使用re.findallstr.join

>>> from re import findall 
>>> mystr = "(98119,m1) (229260,m1) (15652,m2)" 
>>> ' '.join(findall('\(([^,]+),', mystr)) 
'98119 229260 15652' 
>>> 

这里是上面的比赛有什么用正则表达式模式的崩溃:

\( # (
(  # The start of a capture group 
[^,]+ # One or more characters that are not , 
)  # The close of the capture group 
,  # , 
+0

,或只是一个简单的“2个位数以上”,即' '(\ d {2,})'' – 2014-10-21 21:19:59