【问题标题】:Extract Lists from Text File in Elixir从 Elixir 中的文本文件中提取列表
【发布时间】:2017-03-07 04:30:16
【问题描述】:

我有一个奇怪的问题,但我已经阅读了各种各样的 Elixir 文档和教科书来回答这个问题,但一无所获。

我有一组 .txt 文件,每个文件都包含列表格式的数据。因此,.txt 文件的内容如下所示(包括括号):

[a, [a, b], c, [d, e, f], g]

如果我将此文件读入 Elixir 函数,它将被读取为字符串。如果我使用String.tolist,它将在新列表中包含括号作为条目。但是有没有办法将它作为一个列表读取,就像它在文件中一样格式化?显然,我可以轻松编写一个函数,使用 Regex 逐个字符地读取数据,每次找到左括号时开始一个新列表,每次找到右括号时结束列表。然而,这将非常耗费资源,并且看起来非常“非灵药”。

Elixir 是否有任何内置函数或命令可以识别括号并将其格式化为列表,而无需逐字符读取数据?或者,有没有比我聪明的人知道更有效的方法?谢谢!

【问题讨论】:

    标签: list file elixir


    【解决方案1】:

    如果您文件中的文本是有效的长生不老药代码,那么您可以使用Code.eval_string 但是,除非字符串被完全引用 Elixir时尚,它可能行不通。

    即您的示例数据必须如下所示:

    ["a", ["a", "b"], "c", ["d", "e", "f"], "g"]
    

    您可以构建一个解析器来执行所有引用,但到那时您已经 已经是真正的解析器的一半了。字符串必须被某些东西解析,使用内置的 Elixir 解析器只涉及你 编写更少的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多