Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 枚举筛选:包括索引处的值+;1._List_Elixir - Fatal编程技术网

List 枚举筛选:包括索引处的值+;1.

List 枚举筛选:包括索引处的值+;1.,list,elixir,List,Elixir,我试图从args列表中解析unix样式标志,即: args = ["hello", "-f", "val", "-u", "valtwo"] # Desired outcome: [{"-f", "val"}, {"-u", "valtwo"}] 我已成功使用以下正则表达式提取标志: args |> Enum.

我试图从
args
列表中解析unix样式标志,即:

args = ["hello", "-f", "val", "-u", "valtwo"]
# Desired outcome: [{"-f", "val"}, {"-u", "valtwo"}]
我已成功使用以下正则表达式提取标志:

args
|> Enum.filter(fn arg -> Regex.match?(~r/^-{1,2}\w+/, arg) end)
# ["-f", "-u"]
但是,为了获得与这些键对应的值,我需要在下一个索引中获得args的值

我曾考虑过使用
Enum.chunk\u every(2)
(丢弃第一个元素,
“hello”
)转换数组,但这不够灵活,因为这将在以下情况下中断:

["hello", "-f", "val", "secondvalforf", "-u", "valtwo"]
# Achieved outcome: [{"-f", "val"}, {"secondvalforf", "-u"}, {"valtwo"}]
非常感谢您的任何想法。

是您在这里的朋友

args=~w |你好-f val foo-u valtwo|
#⇒ [“你好”、“-f”、“val”、“foo”、“-u”、“valtwoo”]
枚举减少(args,[],fn
他是你的朋友

args=~w |你好-f val foo-u valtwo|
#⇒ [“你好”、“-f”、“val”、“foo”、“-u”、“valtwoo”]
枚举减少(args,[],fn