反转Format方法。
大多数语言都提供FormatString类的方法(或等价的方法,例如sprintf)。它基本上采用“格式”字符串,其中可能包含具有某些额外格式的占位符,并且要插入零个或多个值来代替这些占位符。
您的任务是以您选择的语言实现逆函数。
API
方法名称应为format1或deformat。
输入:第一个参数将是“格式”字符串,就像在原始格式方法中一样。第二个参数将是解析的字符串(请参见下面的示例)。不需要也不允许其他参数。
输出:格式的占位符对应提取的值的数组(或您的选择语言的等价形式)。
该占位符{0},{1},{2},等。
如果格式不正确,则可能会引发错误,或者返回任何您喜欢的格式。
在输入无效的情况下,您可能会抛出错误或返回任何您喜欢的内容。无效的输入是String.Format无法使用相同格式的字符串生成的,例如:'{0}{0}', 'AAB'。
例子
deformat('{0} {1}', 'hello world') => ['hello', 'world']
deformat('http{0}://', 'https://') => ['s']
deformat('http{0}://', 'http://') => [''] // array of one item which is an empty string
deformat('{0}{1}{0}', 'ABBA') => ['A', 'BB']
歧义性
如有歧义,您可以返回任何合适的答案。例如:
deformat('{0} {1}', 'Edsger W. Dijkstra')
// both ['Edsger', 'W. Dijkstra'] and ['Edsger W.', 'Dijkstra'] are applicable.
更多规则
- 为了简化操作,实际上不需要支持格式化。您可能会忘记所有有关前导零,小数点或舍入问题的信息。只需将值生成为字符串即可。
 - 为了使其平凡,不允许使用正则表达式。
 - 您无需注意输入中的花括号(即,第二个输入参数将不包含任何
{s或}s)。 
获奖
['', 'AAAA'],['A', 'AA'],['AA', '']
                deformat('{0}{1}{0}', 'ABBA') => ['', 'ABBA']吗?如果是这样,那么有一个便宜的解决方案,除非每个字符串至少出现两次。
                deformat('{0}_{1}_{0}', 'A_BB_A')吗?
                
deformat('{0}{1}{0}', 'ABBA') => ['A', 'BB'],如果我们被给了deformat('{0}{1}{0}', 'AAAA')怎么办?