什么是在未转义字符上分割字符串的最佳方法?
例如,分割这个(原始)字符串
在 '!' 上进行分割,以产生以下数组:
整个正则表达式匹配在分割时被删除,因此这个数组是结果:
`example string\! it is!split in two parts`
在 '!' 上进行分割,以产生以下数组:
["example string! it is", "split in two parts"]
std.regex.split
看起来似乎是正确的方法。但是出现了一个问题,这段代码匹配了正确的分隔符,但同时也消耗了左侧部分的最后一个字符。
auto text = `example string\! it is!split in two parts`;
return text.split(regex(`[^\\]!`)).map!`a.replace("\\!", "!")`.array;
整个正则表达式匹配在分割时被删除,因此这个数组是结果:
["example string! it i", "split in two parts"]
有没有最好的方法可以在不需要自己迭代字符串的情况下获取第一个数组呢?