reg_assoc(3) MudOS (26 Dec 1994) reg_assoc(3) 名称: reg_assoc() - 一个正规样式(regular pattern)子字串撷取器(extractor) 语法: mixed *reg_assoc(string str, string *pat_arr, mixed *tok_arr, void | mixed def); 混合 *reg_assoc(字串 str, 字串 *pat_arr, 混合 *tok_arr, 无参数 | 混合 def); 用法: reg_assoc 将一个字串扩展(explode)为一些符合给定 pat_arr 正规 表示(regular expression)样式字串的子字串,并且和给定的剖析单 元(token) tok_arr 相联结。如果 def(预设值 0)有指定的话,它 则会和一个未配对者相联结。传回值是含有二个子阵列的阵列,第一 个是一个如下格式的阵列 ({ 未配对 1, 配对 1, 未配对 2, 配对 2, ..., 未配对 n, 配对 n, 未配对 n+1 }) 而第二个则含有依序对应於配对者的剖析单元: ({ def, 相对於配对 1 的剖析单元, ..., def, 相对於配对 n 的剖析单元, def })。 pat_arr 和 tok_arr 必须一样大小,tok_arr 的第 i 个元素是对 应於 pat_arr 的第 i 个元素。pat_arr 可以只含有字串。 如果 pat_arr(或 tok_arr)的大小是零的话,则只会传回 ({ ({ str }), ({ def }) })。 例子: #define STRING_PAT "\"(\\\\.|[^\\\"])*\"" #define NUM_PAT "[0-9]+" #define F_STRING 1 #define F_NUM 2 reg_assoc("Blah \"blah\" test 203 hhh j 308 \"bacdcd\b\"acb", ({ STRING_PAT, NUM_PAT }), ({ F_STRING, F_NUM }), "no-match") 将会传回 ({ ({ "Blah ", "\"blah\"", " test ", "203", " hhh j ", "308", " ", "\"bacdcd\b\"", "acb" }), ({ "no-match", F_STRING, "no-match", F_NUM, "no-match", F_NUM, "no-match", F_STRING, "no-match" }) }) 翻译: [email protected] 97.Jul.26 (printed 3/16/95)