在未转义的字符上拆分字符串的最佳方法是什么?
例如。拆分此(原始)字符串
`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"]
在不自己迭代字符串的情况下到达第一个数组的最佳方法是什么?
最佳答案
使用负面回顾:(?<!\\)\!
关于regex - 在 D 中的未转义字符上拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28966461/