python正则表达式而不是拆分

时间:2014-10-21 21:12:21

标签: python regex string

我有一个看起来像这样的字符串:

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

以上可以是任意数量的元素(在我的例子中只有3个)

我想返回一个看起来像这样的字符串

"98119 229260 15652"

我可以使用字符串拆分,但这将是太多的代码。我正在寻找正则表达式,但正则表达式并不是我擅长的东西。谁能建议怎么做?

1 个答案:

答案 0 :(得分: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
,      # ,