
reg_assoc(3)          LPC Library Functions          reg_assoc(3)

NAME
     reg_assoc() - A regular pattern substring extractor

SYNOPSIS
     mixed  *reg_assoc(string   str,   string   *pat_arr,   mixed
     *tok_arr, void | mixed def);

DESCRIPTION
     reg_assoc takes a string and  explodes  it  into  substrings
     matching  the  regular  expression  pattern-strings given in
     pat_arr and associates them with tokens given in tok_arr. If
     def (default 0) is given, it is associated with a non-match.
     The return value is an array of two arrays, the 1st being an
     array of the form

          ({ non-match1, match1, non-match2, match2, ...,
             non-match n, match n, non-match n+1 })

     and the 2nd holds the tokens corresponding to the matches in
     order

          ({ def, token corresponding to match1, ...., def,
     token corresponding to match n, def }).

     pat_arr and tok_arr must be of the same sizes, the ith  ele-
     ment  in  tok_arr  being  the corresponding token to the ith
     element of pat_arr. pat_arr can only hold strings.

     If pat_arr (and hence tok_arr) has size 0  then  the  return
     value is simply ({ ({ str }), ({ def }) }).

EXAMPLE
     #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")

     will return
     ({ ({ "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" }) })

MudOS               Last change: 26 Dec 1994                    1

