2

我在 Python 中有这个字符串:

s = "foo(a) foo(something), foo(stuff)\n foo(1)"

我想用它的内容替换每个 foo 实例:

s = "a something, stuff\n 1"

字符串 s 不是常量,并且 foo 的内容每次都会改变。我使用 regex、split 和 regex 做了一些事情,但是得到了一个非常大的函数。我怎样才能以简单明了的方式做到这一点?提前Thks。

4

2 回答 2

6
>>> x = "foo(a) foo(something), foo(stuff)\n foo(1)"
>>> re.sub(r'foo\(([^)]*)\)', r'\1', x)
u'a something, stuff\n 1'
于 2012-06-03T20:47:01.380 回答
0

由于您说 foo 的内容不包含括号,因此 Regex 似乎确实不需要。你为什么不这样做:

>>> s = "foo(a) foo(something), foo(stuff)\n foo(1)"
>>> s = s.replace('foo(','')
>>> s = s.replace(')','')
>>> print s
'a something, stuff\n 1'

请参阅Python:string.replace 与 re.sub

于 2012-06-03T21:45:18.217 回答