search
该 search() 函数是一个通用函数来找到一个或多个(或所有)事件在向量的值或值的列表,列表中的字符串或更复杂的构造。
搜索使用
搜索( match_value , string_or_vector [ , ] index_col_num num_returns_per_match[ , ] );
搜索参数
match_value
可以是单一值或值的向量。
字符串作为字符遍历搜索功能的载体;
不搜索子串。
注意:如果 match_value 是一个向量的字符串,搜索查找的字符串精确比赛。
看下面的例子 9 。
string_or_vector字符串或向量搜索匹配。
num_returns_per_match (默认值: 1 )
默认情况下,搜索寻找返回每个元素的match_value比赛
作为一个列表的索引
如果 num_returns_per_match > 1 ,搜索返回列表上列出的为每个元素的索引值 match_value num_returns_per_match 。
看下面的例子 8 。
如果 num_returns_per_match = 0 ,搜索返回一个列表,列出所有匹配
为每个元素的索引值 match_value 。看下面的例子 6 。
index_col_num (默认值: 0 )
当 string_or_vector 是一个向量的向量表,多维或多列表的列表的构造复杂, match_value 可能不会在第一个发现( index_col_num = 0 )柱。
看下面的例子 5 为一个简单的使用例子。
搜索使用的例子
看到 example023.scad 包括一可渲染的例子 OpenSCAD 。
指数值返回列表
Example
Code
search("a","abcdabcd");
1
Result
[0]
2 search("e","abcdabcd"); []
3 search("a","abcdabcd",0); [[0,4]]
4 search("a",[ ["a",1],["b",2],["c",3],["d",4], [[0,4]] (see also
["a",5],["b",6],["c",7],["d",8],["e",9] ], 0); Example 6 below)
Search on different column; return Index values
Example 5:
search(3,[ ["a",1],["b",2],["c",3],["d",4],["a",5],["b",6],["c",7],["d",8],
["e",3] ], 0,
1);
Returns:
[2,8]
Search on list of values
Example 6: Return all matches per search vector element.
search("abc",[ ["a",1],["b",2],["c",3],["d",4],["a",5],["b",6],["c",7],["d",8],
["e",9] ],
0);
Returns:
[[0,4],[1,5],[2,6]]
Example 7: Return first match per search vector element; special case return
vector.
search("abc",[ ["a",1],["b",2],["c",3],["d",4],["a",5],["b",6],["c",7],["d",8],
["e",9] ],
1);
63
Returns:
[0,1,2]
Example 8: Return first two matches per search vector element; vector of
vectors.
search("abce",[ ["a",1],["b",2],["c",3],["d",4],["a",5],["b",6],["c",7],["d",8],
["e",9] ],
2);
Returns:
[[0,4],[1,5],[2,6],[8]]
Search on list of strings
Example 9:
lTable2=[ ["cat",1],["b",2],["c",3],["dog",4],["a",5],["b",6],["c",7],["d",8],
["e",9],
["apple",10],["a",11] ];
lSearch2=["b","zzz","a","c","apple","dog"];
l2=search(lSearch2,lTable2);
echo(str("Default list string search (",lSearch2,"): ",l2));
Returns
ECHO: "Default list string search
([\"b\", \"zzz\", \"a\", \"c\", \"apple\", \"dog\"]):
[1, [], 4, 2, 9, 3]"
Getting the right results
// workout which vectors get the results
v=[ ["O",2],["p",3],["e",9],["n",4],["S",5],["C",6],["A",7],["D",8] ];
//
echo(v[0]);
// -> ["O",2]
echo(v[1]);
// -> ["p",3]
echo(v[1][0],v[1][1]);
// -> "p",3
echo(search("p",v));
// find "p" -> [1]
echo(search("p",v)[0]);
// -> 1
echo(search(9,v,0,1));
// find 9 -> [2]
echo(v[search(9,v,0,1)[0]]);
// -> ["e",9]
echo(v[search(9,v,0,1)[0]][0]);
// -> "e"
echo(v[search(9,v,0,1)[0]][1]);
// -> 9
echo(v[search("p",v,1,0)[0]][1]);
// -> 3
echo(v[search("p",v,1,0)[0]][0]);
// -> "p"
echo(v[search("d",v,1,0)[0]][0]);
// "d" not found -> undef
echo(v[search("D",v,1,0)[0]][1]);
// -> 8
|