/*-------------------------------------------------------------*/ /*************************************************************** * Do a "man regexp" if you don't know what is a "regular * * expression"). * ***************************************************************/ /*-------------------------------------------------------------*/ /* Name : netwib_buf_search_re Description : Search a regular expression in a string. Input parameter(s) : *pbuf : buffer containing input data regularexpression : searched regular expression. For example : "a.", "f[A-Z]", etc. casesensitive : NETWIB_TRUE if the search has to be case sensitive Input/output parameter(s) : Output parameter(s) : *pfound : buffer set with found data Normal return values : NETWIB_ERR_OK : the searched element was found NETWIB_ERR_NOTFOUND : the searched element wasn't found This function supports NETWIB_BUF_FLAGS_SENSITIVE. */ netwib_err netwib_buf_search_re(netwib_constbuf *pbuf, netwib_constbuf *pregularexpression, netwib_bool casesensitive, netwib_bufext *pfound); /*-------------------------------------------------------------*/ /*************************************************************** * A netwib_regexp contains an array of found data during a * * a regular expression search. * * The element at index 0 defines the location of the * * global expression. * * Elements at index 1, 2, etc. define the found string * * between '(' and ')'. * * * * For example, if the data is "houses" and the regular * * expression is "o(.(s))", then : * * re.numset = 3 * * re.array[0] = "ous" * * re.array[1] = "us" * * re.array[2] = "s" * * re.array[3..63] not initialized * ***************************************************************/ /*-------------------------------------------------------------*/ /* We cannot have more than 64 parenthesis. This should be sufficient in all cases, but you may want to increase it, and recompile netwib. */ #define NETWIB_REGEXP_MAXLEN 64 typedef struct { netwib_uint32 numset; /* number of buffers set */ netwib_bufext array[NETWIB_REGEXP_MAXLEN]; } netwib_regexp; /*-------------------------------------------------------------*/ /* Name : netwib_buf_search_regexp Description : Search a regular expression in a string. Input parameter(s) : *pbuf : buffer containing input data regularexpression : searched regular expression. For example : "a.", "f[A-Z]", etc. casesensitive : NETWIB_TRUE if the search has to be case sensitive Input/output parameter(s) : Output parameter(s) : *pfound : netwib_regexp containing the found data Normal return values : NETWIB_ERR_OK : the searched regular expression was found NETWIB_ERR_NOTFOUND : the searched regexp wasn't found This function supports NETWIB_BUF_FLAGS_SENSITIVE. */ netwib_err netwib_buf_search_regexp(netwib_constbuf *pbuf, netwib_constbuf *pregularexpression, netwib_bool casesensitive, netwib_regexp *pfound);