golang 通过空格分割字符串,但是有转义符的空格不要分割,怎么做
时间: 2024-03-20 19:40:33 浏览: 20
可以使用正则表达式来进行分割,以下是一个实现的例子:
```go
import "regexp"
func splitString(s string) []string {
re := regexp.MustCompile(`(?<!\\) `) // 匹配非转义的空格
return re.Split(s, -1)
}
```
在正则表达式中,`(?<!\\)` 表示匹配前面不是反斜杠的位置,然后再匹配空格。使用 `regexp.MustCompile` 函数编译正则表达式后,可以使用 `Split` 方法来按照正则表达式进行分割。其中参数 `-1` 表示分割所有匹配项。
相关问题
golang 分割字符串
以下是两种Golang分割字符串的例子:
1.按空格分割字符串
```go
s := "Hello World"
ss := strings.Fields(s)
fmt.Println(ss) // 输出:[Hello World]
```
2.按指定字符分割字符串
```go
s := "Hello,World"
ss := strings.Split(s, ",")
fmt.Println(ss) // 输出:[Hello World]
```
golang 去除json字符串转义
在 golang 中,将字符串转换为 json 格式时,会自动将一些特殊字符添加反斜杠进行转义,如双引号、反斜杠、换行符等。这样做是为了避免这些特殊字符对 json 格式的解析产生干扰。
但有些时候,我们需要将这些转义字符去掉,得到原始的字符串内容。这时可以使用 strconv 包中的 Unquote() 函数。
Unquote() 函数会将字符串中表示转义字符的反斜杠去除,并将实际的字符转义为其对应的 ASCII 字符。如果字符串不是以双引号包裹的,则会返回一个错误。
示例代码如下:
```
package main
import (
"fmt"
"strconv"
)
func main() {
jsonStr := `{"name":"golang","version":"1.16"}`
fmt.Println(jsonStr)
unquotedStr, err := strconv.Unquote(jsonStr)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(unquotedStr)
}
```
输出结果如下:
```
{"name":"golang","version":"1.16"}
{name:golang,version:1.16}
```
可以看到,经过 Unquote() 处理后,字符串中的双引号已经去掉了,而转义的字符也被正确还原。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)