使用正则表达式从给定的字符串中查找多个字符串

时间:2019-08-15 11:59:36

标签: python regex

s = "[(0, '0.105*\"function\" + 0.032*\"program\" + 0.024*\"location\"')]"

这是我的一个字符串。如何在python中使用正则表达式分隔字符串,例如“函数”,“程序”,“位置”?

我希望以列表的形式输出,即

lst = ['function', 'program', 'location']

3 个答案:

答案 0 :(得分:1)

尝试一下:

>>> re.findall(r'"([^"]*)"', s)
['function', 'program', 'location']

答案 1 :(得分:1)

您可以使用re模块,但是-至少对于您提供的示例数据-不必使用它来获取所需的输出,就像{{1} }方法就足够了。那就是:

str

输出:

s = "[(0, '0.105*\"function\" + 0.032*\"program\" + 0.024*\"location\"')]"
lst = [i for i in s.split('"') if i.isalpha()]
print(lst)

此代码仅在['function', 'program', 'location'] split s,然后选择",它们仅由字母字符组成并且长度不少于str。 / p>

答案 2 :(得分:0)

import re
s = "[(0, '0.105*\"function\" + 0.032*\"program\" + 0.024*\"location\"')]"
groups = re.findall("\"([a-z]+?)\"",s) # get groups of all letters which are between two `"`
print(groups) # -> ['function', 'program', 'location']