Oniguruma API 2003/07/04 declared in regex.h. # int regex_init(void) Initialize library. You don't have to call it explicitly, because it is called in regex_new(). # int regex_error_code_to_str(UChar* err_buf, int err_code, ...) Return error message string length. arguments 1 err_buf: error message buffer. (required size: REG_MAX_ERROR_MESSAGE_LEN) 2 err_code: error code returned from other API functions. 3 err_info (optional): error info returned from regex_new() and regex_recompile(). # int regex_new(regex_t** reg, UChar* pattern, UChar* pattern_end, RegOptionType option, RegCharEncoding code, RegSyntaxType* syntax, RegErrorInfo* err_info) Create new regex object(regex_t). normal return: REG_NORMAL arguments 1 reg: return regex object's address. 2 pattern: regex pattern string. 3 pattern_end: terminate address of pattern. (pattern + pattern length) 4 option: compile time options. REG_OPTION_NONE no option REG_OPTION_SINGLELINE '^' -> '\A', '$' -> '\z', '\Z' -> '\z' REG_OPTION_MULTILINE '.' match with newline REG_OPTION_IGNORECASE ignore case (case-insensitive) REG_OPTION_EXTEND extended pattern form REG_OPTION_FIND_LONGEST find longest match REG_OPTION_FIND_NOT_EMPTY ignore empty match REG_OPTION_NEGATE_SINGLELINE clear REG_OPTION_SINGLELINE which is default on in REG_SYNTAX_POSIX_XXX, REG_SYNTAX_PERL and REG_SYNTAX_JAVA. REG_OPTION_CAPTURE_ONLY_NAMED_GROUP named group only captured. 5 code: character encoding. REGCODE_ASCII ASCII REGCODE_UTF8 UTF-8 REGCODE_EUCJP EUC-JP REGCODE_SJIS Shift_JIS REGCODE_DEFAULT ASCII 6 syntax: pointer to pattern syntax definition. REG_SYNTAX_POSIX_BASIC POSIX Basic RE REG_SYNTAX_POSIX_EXTENDED POSIX Extended RE REG_SYNTAX_EMACS Emacs REG_SYNTAX_GREP grep REG_SYNTAX_GNU_REGEX GNU regex REG_SYNTAX_JAVA Java (Sun java.util.regex) REG_SYNTAX_PERL Perl REG_SYNTAX_RUBY Ruby REG_SYNTAX_DEFAULT default (== Ruby) regex_set_default_syntax() or any RegSyntaxType data pointer defined by user. 7 err_info: address for return optional error info. use this value as 3rd argument of regex_error_code_to_str(). # void regex_free(regex_t* reg) Free memory used by regex object. arguments 1 reg: regex object. # int regex_recompile(regex_t* reg, UChar* pattern, UChar* pattern_end, RegOptionType option, RegCharEncoding code, RegSyntaxType* syntax, RegErrorInfo* err_info) Recompile regex object. normal return: REG_NORMAL arguments 1 reg: regex object. Another arguments are same with regex_new(). # int regex_search(regex_t* reg, UChar* str, UChar* end, UChar* start, UChar* range, RegRegion* region, RegOptionType option) Search string and return search result and matching region. normal return: match position offset (i.e. p - str >= 0) not found: REG_MISMATCH (< 0) arguments 1 reg: regex object 2 str: target string 3 end: terminate address of target string 4 start: search start address of target string 5 range: search terminate address of target string 6 region: address for return group match range info (NULL is allowed) 7 option: search time option REG_OPTION_NOTBOL string head(str) isn't considered as begin of line REG_OPTION_NOTEOL string end (end) isn't considered as end of line REG_OPTION_POSIX_REGION region argument is regmatch_t[] of POSIX API. # int regex_match(regex_t* reg, UChar* str, UChar* end, UChar* at, RegRegion* region, RegOptionType option) Match string and return result and matching region. normal return: match length (i.e. p - at >= 0) not match: REG_MISMATCH (< 0) arguments 1 reg: regex object 2 str: target string 3 end: terminate address of target string 4 at: match address of target string 5 region: address for return group match range info (NULL is allowed) 6 option: search time option REG_OPTION_NOTBOL string head(str) isn't considered as begin of line REG_OPTION_NOTEOL string end (end) isn't considered as end of line REG_OPTION_POSIX_REGION region argument is regmatch_t[] of POSIX API. # RegRegion* regex_region_new(void) Create a region. # void regex_region_free(RegRegion* region, int free_self) Free memory used by region. arguments 1 region: target region 2 free_self: [1: free all, 0: free memory used in region but not self] # void regex_region_copy(RegRegion* to, RegRegion* from) Copy contents of region. arguments 1 to: target region 2 from: source region # void regex_region_clear(RegRegion* region) Clear contents of region. arguments 1 region: target region # int regex_region_resize(RegRegion* region, int n) Resize group range area of region. normal return: REG_NORMAL arguments 1 region: target region 2 n: new size # int regex_name_to_group_numbers(regex_t* reg, UChar* name, UChar* name_end, int** num_list) Return group number list of name. Named subexp is defined by (?....). normal return: number of groups for the name. (ex. /(?..)...(?..)/ ==> 2) name not found: -1 arguments 1 reg: regex object. 2 name: subexp-name. 3 name_end: terminate address of subexp-name. 4 num_list: return list of group number. # int regex_foreach_names(regex_t* reg, int (*func)(UChar*,int,int*,void*), void* arg) Iterate function call for all names. normal return: 0 error: func's return value. arguments 1 reg: regex object. 2 func: called function. func(name, , , arg); if func return non 0 value, iteration is stopped. 3 arg: argument for func. # UChar* regex_get_prev_char_head(RegCharEncoding code, UChar* start, UChar* s) Return previous character head address. arguments 1 code: character encoding 2 start: string address 3 s: target address of string # UChar* regex_get_left_adjust_char_head(RegCharEncoding code, UChar* start, UChar* s) Return left-adjusted head address of a character. arguments 1 code: character encoding 2 start: string address 3 s: target address of string # UChar* regex_get_right_adjust_char_head(RegCharEncoding code, UChar* start, UChar* s) Return right-adjusted head address of a character. arguments 1 code: character encoding 2 start: string address 3 s: target address of string # int regex_set_default_syntax(RegSyntaxType* syntax) Set default syntax. arguments 1 syntax: pointer to pattern syntax definition. # void regex_set_default_trans_table(UChar* table) Set default case transformation table. arguments 1 table: case transformation table (* this function will be obsoleted in future version) # int regex_end(void) The use of this library is finished. normal return: REG_NORMAL # const char* regex_version(void) Return version string. (ex. "1.8.6") // END