我有一个带有特殊字符的字符串:
>> text = "ab()-cdef"
我想将字母与列表中的特殊字符分开
>> list = ["ab", "(" , ")" ,"-", "cdef"]
我尝试过
list = String.split(text,["(",")","-"], trim: false)
但是我失去了特殊字符
list = ["ab","","","","cdef"]
答案 0 :(得分:0)
我使用了type Entity struct {
Guid string `json:"guid"`
}
type Result struct {
Entities Entity `json:"entities"`
}
type EntitySearch struct {
Results Result `json:"results"`
}
type Actor struct {
EntitySearch EntitySearch `json:"entitySearch"`
}
type Response struct {
Actor Actor `json:"actor"`
}
fmt.Println(resp.Actor.EntitySearch.Results.Entities.Guid)
。
Regex.scan/2
我不得不转义一些特殊字符,例如~r{\(|\)|-|[a-z]*}
|> Regex.scan("ab()-cdef")
|> List.flatten()
|> Enum.filter(fn s -> String.length(s) > 0 end)
变成(
–并用竖线分隔特殊字符。
答案 1 :(得分:0)
您快到了。使用lookarounds将字符串拆分为非字母。
String.split "ab()-cdef", ~r/(?<=\W)|(?=\W)/
#⇒ ["ab", "(", ")", "-", "cdef"]
答案 2 :(得分:0)
documentation for Regex.split 提到了 WriterStrategy
选项:
FormatWriterStream
请注意,当 String.split 与正则表达式一起使用时,您也可以使用此选项。