所以我有3个变量。
char_in = "("
char_out = ")"
string = "[(0, 0, 255), (250, 250), 50]"
如何获取char_in和char_out内的每个字符串的列表。
喜欢["0, 0, 255", "250, 250"]
答案 0 :(得分:0)
您可以使用re
模块:
In [1294]: re.findall('\('+ char_in +'.*?' + char_out+ '\)',string)
Out[1294]: ['0, 0, 255', '250, 250']
您可以具有以下功能:
In [1309]: def get_in_between(char_in, string, char_out):
...: return re.findall(re.escape(char_in)+'(.*?)'+re.escape(char_out), string)
...:
In [1310]: get_in_between('(','[(0, 0, 255), (250, 250), 50]', ')')
Out[1310]: ['0, 0, 255', '250, 250']
让我知道这是否有帮助。
答案 1 :(得分:0)
如果char_in
和char_out
必须为(
和)
,则Mayank Porwal的答案有效。要处理其他字符,需要对其进行转义并将其插入正则表达式中。
>>> string = "[(0, 0, 255), (250, 250), 50]"
>>> char_in = "("
>>> char_out = ")"
>>> re.findall(re.escape(char_in)+'(.*?)'+re.escape(char_out), string)
['0, 0, 255', '250, 250']
>>> string = "[<0, 0, 255>, <250, 250>, 50]"
>>> char_in = '<'
>>> char_out = '>'
>>> re.findall(re.escape(char_in)+'(.*?)'+re.escape(char_out), string)
['0, 0, 255', '250, 250']