登录
首页 >  Golang >  Go问答

在 Go 中分割字符串时保留转义空格

来源:stackoverflow

时间:2024-03-25 13:18:35 492浏览 收藏

在 Go 中,使用 strings.split 函数分割字符串时,默认情况下会忽略转义空格。要保留转义空格,需要采用其他方法。由于 Go 不支持环视,一个推荐的方法是使用正则表达式来查找非转义空格或字符串结尾,并使用此正则表达式分割字符串。

问题内容

我可以使用 strings.split 分割字符串:

strings.split(`hello world`, " ")
// ["hello", "world"]  (length 2)

但我想保留反斜杠转义空格:

escapePreservingSplit(`Hello\ World`, " ")
// ["Hello\ World"] (length 1)

在 go 中完成此任务的推荐方法是什么?


正确答案


由于 go 不支持环视,所以这个问题并不容易解决。

这会让你接近,但会留下完整的尾随空格:

re := regexp.mustcompile(`.*?[^\\]( |$)`)
split := re.findallstring(`hello cruel\ world pizza`, -1)
fmt.printf("%#v", split)

输出:

[]string{"Hello ", "Cruel\\ World ", "Pizza"}

然后您可以在以下步骤中修剪所有字符串。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>