如何用空字符串替换“\”?

问题描述 投票:0回答:1

嗨,我试图从 go 中的整个字符串中替换这个特定字符,但我明白了

missing ',' in argument list

这是我的代码,你可以看到我使用了 strings.Replace 函数,但看起来“/”对于它来说太多了,无法处理。

loadPAConfigurationData.Data = strings.Replace(loadPAConfigurationData.Data, "u003E", ">", -1)
loadPAConfigurationData.Data = strings.Replace(loadPAConfigurationData.Data, "u003C", "<", -1)
loadPAConfigurationData.Data = strings.Replace(loadPAConfigurationData.Data, "\r\n", "", -1)
loadPAConfigurationData.Data = strings.Replace(loadPAConfigurationData.Data, "\", "", -1)

我只在最后一行收到错误。请问有什么帮助吗?

string go replace escaping
1个回答
1
投票

调用语句的部分

strings.Replace(loadPAConfigurationData.Data, "\", "", -1)

解析如下。

由于

\"
是所谓的 转义序列 允许双引号字符出现在双引号字符串文字中,因此 Go 解析器读取第一个
"
,它开始一个字符串文字,然后读取
\" 
被视为
"
,然后它读取
,
后跟一个空格,然后看到另一个结束字符串文字的
"
。 此时,解析器已收集了正在解析的方法调用的另一个(第二个)参数。

解析器开始进一步扫描,期望看到函数调用的另一个参数,并找到另一个

"
,同时它期望找到
)
或分隔调用参数的逗号。解析器停止并报告错误。

换句话说,这就是解析器所看到的:

                                                    +- expected a , or a )
                                                    |
                                                    v
strings.Replace(loadPAConfigurationData.Data, "\", "", -1)
^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^
|               |                             |
|               |                             +- the second argument
|               +- the first argument
+- the method to call

至于解决问题,你可能想使用

"\\"

`\`

表示由单个双引号字符组成的字符串。

这在 文档 中有解释,但你的问题太基本了,我建议你花点时间至少完成一些关于 Go 的介绍性材料。您可以从Go Tour开始。

© www.soinside.com 2019 - 2024. All rights reserved.