Python 如何在两个字符串中获得一个字符串?
所以我有3个变量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
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]