在D语言中,如何在未转义字符上分割字符串?

5
什么是在未转义字符上分割字符串的最佳方法? 例如,分割这个(原始)字符串
`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"] 有没有最好的方法可以在不需要自己迭代字符串的情况下获取第一个数组呢?

你正在运行哪种编程语言? - Avinash Raj
1个回答

10
使用负回顾后发现:

(?<!\\)\!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接