我有一个字符串列表:
<child [isShow]="show" (isShowChange)="show = $event"></child>
除了使用Regexp之外,如何从每个项目中轻松提取这两个数字?
list1 = ["aaa_1_bbb_1326778", "aaa_629_bbb_37", "aaa_2254354_bbb_3997"]
有没有类似模式匹配的解决方案?
答案 0 :(得分:3)
如果格式总是由下划线分隔的4个事物,第二个和第四个是整数,这是你想要的东西,我会使用String.split
和模式匹配,如下所示:
list1 = ["aaa_1_bbb_1326778", "aaa_629_bbb_37", "aaa_2254354_bbb_3997"]
Enum.map(list1, fn(x) ->
[_, a, _, b] = String.split(x, "_")
{String.to_integer(a), String.to_integer(b)}
end) |> IO.inspect
输出:
[{1, 1326778}, {629, 37}, {2254354, 3997}]
虽然你可以在这里使用更多的模式匹配和更少的拆分,但是你需要定义一些函数并使用递归,只要String.split
存在并且符合用例,我就不会亲自去做。 / p>