input = "{1} {John Travis} {was} {here}"
假设我想得到第二对和第三对括号内的字符串,那么预期的输出是:
output = "John Travis was"
我尝试使用以空格作为分隔符的数组拆分,预期结果如下:
array = ["{1}", "{John Travis}", "{was}", "{here}"]
array[1] = re.sub("{", "", array[1])
array[1] = re.sub("}", "", array[1])
array[2] = re.sub("{", "", array[2])
array[2] = re.sub("}", "", array[2])
#expected result: array[1] + array[2] ( "John Travis was" )
但我记得我在“John Travis”上有分隔符““,结果是:
array = ["{1}", "{John", "Travis}", "{was}", "{here}"]
array[1] = re.sub("{", "", array[1])
array[2] = re.sub("}", "", array[2])
array = ["{1}", "John", "Travis", "{was}", "{here}"]
#unexpected result: array[1] + array[2] ( "John Travis" )
如何进行?
谢谢你的倾听。
3条答案
按热度按时间mec1mxoz1#
对于所需的输出,您可以使用regex:
产出将是:
yzxexxkh2#
另一个解决方案(不使用
re
)是,可以用'
替换{
,用',
替换}
,然后使用ast.literal_eval
将string作为元组求值,然后使用标准索引:图纸:
f87krz0w3#
使用列表解析的替代解决方法: