Python Regex获取两个子字符串之间的字符串


问题内容

首先,我知道这 似乎 是一个重复的问题,但是,我找不到解决我问题的可行方法。

我有看起来像以下的字符串:

string = "api('randomkey123xyz987', 'key', 'text')"

我需要提取 randomkey123xyz987 ,它将始终在 api(’‘之间,

我打算为此使用正则表达式,但是,似乎有些麻烦。

这是我取得的唯一进步:

import re
string = "api('randomkey123xyz987', 'key', 'text')"
match = re.findall("\((.*?)\)", string)[0]
print match

以下代码返回 “ randomkey123xyz987”,“ key”,“ text”

我尝试使用 [^’] ,但是我的猜测是我没有正确地将其插入re.findall函数。

我尝试的一切都失败了。


更新:我当前的解决方法是使用 [2:-4] ,但是我仍然想避免使用 match [2:-4]


问题答案:

如果字符串仅包含一个实例,请re.search()改用:

>>> import re
>>> s = "api('randomkey123xyz987', 'key', 'text')"
>>> match = re.search(r"api\('([^']*)'", s).group(1)
>>> print match
randomkey123xyz987