Python 如何在两个字符串中获得一个字符串?

Python 如何在两个字符串中获得一个字符串?,python,string,Python,String,所以我有3个变量 char_in = "(" char_out = ")" string = "[(0, 0, 255), (250, 250), 50]" 如何获得char\u in和char\u out中每个字符串的列表。 像[“0,0,255”,“250,250”]您可以使用re模块: In [1294]: re.findall('\('+ char_in +'.*?' + char_out+ '\)',string) Out[1294]: ['0, 0, 255', '250, 250

所以我有3个变量

char_in = "("
char_out = ")"
string = "[(0, 0, 255), (250, 250), 50]"
如何获得char\u in和char\u out中每个字符串的列表。
[“0,0,255”,“250,250”]

您可以使用
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']

让我知道这是否有用。

如果
char\u in
char\u 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']
>>string=“[(0,0255),(250250),50]”
>>>char_in=“(”
>>>char_out=“)”
>>>re.findall(re.escape(char_-in)+'(.*?)+re.escape(char_-out),字符串)
['0, 0, 255', '250, 250']
>>>string=“[,50]”
>>>char_in=“”
>>>re.findall(re.escape(char_-in)+'(.*?)+re.escape(char_-out),字符串)
['0, 0, 255', '250, 250']

我需要使用char\u in和char\u out来获取字符串。它只是返回一个空列表。我测试并粘贴了上面的解决方案。这对我来说是个不错的结果。请粘贴您正在使用的代码。此版本仅在
char\u in
char\u out
时有效,因为转义括号仍然硬编码到正则表达式中。
def get\u in\u between(char\u in,string,char\u out,num):返回re.findall('\('+char\u-in+'..'+char\u-out+'\'),字符串)[num]