我有一个类似List = [{0,12},{0,12},{-1,0},{0,12},{0,4},{1,2}]
和字符串Str = "https://www.youtube.com/watch?v=WQfdwsPao9E"
的列表,现在我要使用列表中的起点和终点找到所有子字符串。
我希望在像["https://www","https://www",..]
我试过用这个:
C=lists:map(fun({X,Y}) -> string:sub_string(Str,X,Y) end,List)
答案 0 :(得分:1)
1> List = [{0,12},{0,12},{-1,0},{0,12},{0,4},{1,2}].
[{0,12},{0,12},{-1,0},{0,12},{0,4},{1,2}]
2> Str = "https://www.youtube.com/watch?v=WQfdwsPao9E".
"https://www.youtube.com/watch?v=WQfdwsPao9E"
3> Len = length(Str).
43
4> [string:sub_string(Str,max(1,X),min(Len,Y)) || {X,Y} <- List].
["https://www.","https://www.",[],"https://www.","http",
"ht"]
5>
您可能需要调整字符串中的索引以完全符合您的需要。
[edit]看起来我没有正确地解释元组的含义是什么。如果没有匹配,我认为它是{Fist_Char_Index,Char_Number}或{-1,0}。所以你应该使用:
[string:sub_string(Str,X+1,X+Y) || {X,Y} <- List, {X,Y} =/= {-1,0}].