Dlang chomp()不适用于某些定界符

Dlang chomp() not working on certain delimiters

声明writefln("%s", chomp("Hello world", "orld")) 产生正确的输出 Hello w.

但是,分隔符“:”和“,”不会被压缩。

writefln("%s", chomp("Hello : world", ":"))

输出Hello : world

std.string.chomp 的文档没有提及任何有关保留字符的内容,除非我误解了什么。这是错误还是按预期工作?

感谢您的宝贵时间。

chomp 去掉字符串的结尾分隔符,在你的情况下 "Hello world" 当然以 "orld"

结尾

但是 "Hello : world" 不会以 ":" 结尾,事实上,如果您希望它以任何与之远程相关的内容结尾,那么它会以 ": world"

结尾

如果这必须与 chomp 一起使用,那么它应该是 "Hello world:"

writefln("%s", chomp("Hello world:", ":")); // It should be like this

您也可以使用 chompPrefix 作为开始分隔符而不是结束符。

但是,如果您想从字符串中删除 ":",则可以使用 std.array

中的 replace
writefln("%s", replace("Hello : world", ":" ""));
// Output: "Hello  world"