regex - 在 D 中的未转义字符上拆分字符串

标签 regex string split d

在未转义的字符上拆分字符串的最佳方法是什么?
例如。拆分此(原始)字符串

`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/

相关文章:

c# - 正则表达式:匹配短语中的所有单词

Python:按选项卡拆分txt文件

JavaScript 用逗号分割数组

javascript - Firefox Add-on-SDK page-mod 匹配模式/通配符错误

regex - 如何替换凯特正则表达式

php - 匹配以 9 位数字开头且可能以 string 结尾的字符串

python - 从 pandas 列中删除非 ASCII 字符

算术加法和字符串连接之间的Java '+'运算符?

python-3.x - 如何从 CSV 输出中删除换行符

regex - 在 if-elsif-else-end 中使用正则表达式