在 Elixir 中拆分字符串而不删除分隔符?

gme*_*die 2 regex string split elixir

我正在寻找一种在 Elixir 中分割字符串的方法,而不删除用于分割的模式,String.split/3行为如下

String.split "testZng", "Z"
# ["test", "ng"]
Run Code Online (Sandbox Code Playgroud)

我正在寻找这样的东西

String.split "testZng", "Z"
# ["test", "Zng"]
Run Code Online (Sandbox Code Playgroud)

或者像这样

String.split "testZng", "Z"
# ["testZ", "ng"]
Run Code Online (Sandbox Code Playgroud)

Wik*_*żew 5

您可以使用环视

Regex.split ~r/(?=Z)/, "testZng"
# ["test", "Zng"]

Regex.split ~r/(?<=Z)/, "testZng"
# ["testZ", "ng"]
Run Code Online (Sandbox Code Playgroud)

(?=Z)是一个正向前瞻,与字符串中紧随其后的字符的位置相匹配Z

(?<=Z)正向后查找,与紧接在 之前的字符串中的位置相匹配Z