如何剥离字符串以获得干净的7A005AFA518B
?现在在 init 上它返回位字符串,并且 strip 似乎不适用于它。我尝试使用模式匹配来获取从起始文本 unicode“\u0002”到结束“\u0003”的字符串,然后剥离,但没有成功。
str = "\u00027A005AFA518B\r\n\u0003"
String.codepoints(String.strip(str))
[<<2>>, "7", "A", "0", "0", "5", "A", "F", "A", "5", "1", "8", "B", "\r", "\n",
<<3>>]
我发现 String.split(str, "\r\n")
可以完成这项工作,但也许它是更干净的方式?
最佳答案
String.strip
、String.lstrip
和 String.rstrip
默认去除空格,但采用 char
代码作为第二个参数。 \u0002
(文本开始)和 \u0003
(文本结束)字符的代码为 2
和 3
分别。所以你可以这样做,同时保留 unicode 字符等:
str = "\u00027A005AFA518B\r\n\u0003"
str |> String.lstrip(2) |> String.rstrip(3) |> String.strip
#=> "7A005AFA518B"
关于elixir - 如何从字符串中删除 '\u0002' 、 '\r\n' 和 '\u0003' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33616941/