elixir - 如何从字符串中删除 '\u0002' 、 '\r\n' 和 '\u0003' ?

标签 elixir phoenix-framework

如何剥离字符串以获得干净的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.stripString.lstripString.rstrip 默认去除空格,但采用 char 代码作为第二个参数。 \u0002(文本开始)和 \u0003(文本结束)字符的代码为 23 分别。所以你可以这样做,同时保留 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/

相关文章:

elixir - 如何从表单上传大文件到 Phoenix ?

elixir - 无法删除模型——函数 Ecto.Query.__changeset__/0 未定义或私有(private)

elixir - 使用 Phoenix.Router 自定义 HTTP 动词

api - 在 Phoenix 中使用参数发布(没有 Ecto)?

elixir - 创建具有变化状态的惰性序列(流),例如斐波那契数?

testing - Phoenix 测试套件在运行测试时找不到列

database - 如何在 Elixir 中创建 mnesia 表?

erlang - 缺少模型之间的 ecto 关联

elixir - 为什么我的 Elixir 函数返回一个列表列表?

tags - 如何从 .eex 文件调用函数