regex

所属分类:编译器/解释器
开发工具:Unix_Linux
文件大小:117KB
下载次数:77
上传日期:2008-10-11 17:12:27
上 传 者yingjie08200
说明:  从一个开源软件中摘取的正则表达式模块,是学习正则表达式、编译原理的好东西。
(From an open-source software in the removal of the regular expression module, is to learn regular expressions, compile the principle of good things.)

文件列表:
regex (0, 2008-10-09)
regex\.kdbgrc.match (591, 2008-10-06)
regex\c.h (23150, 2008-09-26)
regex\encnames.c (10091, 2008-09-28)
regex\Makefile (743, 2008-10-09)
regex\mbutils.c (4013, 2008-10-02)
regex\pg_wchar.h (14946, 2008-10-02)
regex\postgres.h (13779, 2008-09-28)
regex\regcomp.c (56761, 2008-09-23)
regex\regcustom.h (2757, 2008-09-28)
regex\regc_color.c (16915, 2008-09-24)
regex\regc_cvec.c (5026, 2008-09-17)
regex\regc_lex.c (25028, 2008-09-17)
regex\regc_locale.c (14880, 2008-09-17)
regex\regc_nfa.c (35815, 2008-09-25)
regex\regerror.c (3664, 2008-09-17)
regex\regerrs.h (1269, 2008-09-26)
regex\regex.h (7547, 2008-10-09)
regex\regexec.c (27535, 2008-10-03)
regex\regexp.c (33598, 2008-10-09)
regex\rege_dfa.c (17423, 2008-09-17)
regex\regfree.c (2174, 2008-09-17)
regex\regguts.h (12579, 2008-09-26)
regex\test.c (9614, 2008-10-09)
regex\wchar.c (34229, 2008-09-29)
regex\wstrncmp.c (2359, 2008-09-28)

一、文件说明:这是一个从PostgreSQL中摘取的正则表达式匹配模块。 c.h postgres.h postgres 公共的头文件 pg_wchar.h wchar.c mbutils.c wstrncmp.c encnames.c 宽位字符串处理相关的代码 regerrs.h regex.h regcustom.h regguts.h 正则表达式相关的头文件,用户使用的时候只需要包含regex.h即可。 regc_cvec.c regc_lex.c regc_nfa.c regc_color.c regc_locale.c regcomp.c rege_dfa.c regexec.c regfree.c regerror.c 正则表达式处理的实现文件。 regexp.c 对正则表达式接口的包装,为用户提供了简单的接口。假定数据库的字符串是utf-8编码,并对字符串进行utf-8解码。假定使用ARE(设置regex_flavor的值为REG_ADVANCED)选项进行正则表达式的编译。设定编译缓冲区长度为32。 test.c 测试文件 Makefile make文件,此文件同时编译出来一个共享库libregex.so和一个测试用的可执行文件match。 二、关于PostgreSQL正则表达式的语法清参照Postgresql 8.1的文档第9.7节。 三、接口说明: 在regex.h里面主要为用户提供了五个包装后的接口: extern bool pg_regex_match(const char * data,const char *re_val ); extern bool pg_regex_match_icase(const char * data,const char *re_val ); /*大小写无关*/ extern bool similar_to(const char * data,const char * re_val,const char * escape); //SQL-99的正则表达式 extern char *text_regex_substr(const char * data,const char * re_val); extern char * text_regex_replace(const char * s,const char * p,const char * r); 1、bool pg_regex_match(const char * data,const char * re_val); 参 数: data 用户字符串, 类型是 const char * re_val 式正则表达式,类型是 const char * 返 回 值:bool ,如果有匹配字符串,则返回true,否则返回false。 功 能: 这个接口是检查给定的字符串中是否包含正则表达式所表达的字符串。 使用举例:pg_regex_match("hello ASDF world","[A-Z]{4}") 结果返回ture 特殊说明:空的正则表达式("")和任何的字符串匹配。如果正则表达式为NULL,则和任意的字符串匹配 2、bool pg_regex_match_icase(const char *data,const char * re_val ); /*大小写无关*/ 这个函数和pg_regex_match的唯一区别就是不区分大小写。 3、bool similar_to(const char * data,const char * re_val,const char * escape); 参 数: data 用户字符串, 类型是 const char * re_val 式正则表达式,类型是 const char * escape 设置正则表达式的逃逸字符,类型是 const char *,但是这个参数只能设置为NULL,""或者长度为1的字符串 返 回 值:bool ,如果有匹配字符串,则返回true,否则返回false。 功 能: 这个接口是符合SQL 99正则表达式标准的匹配接口。用于postgresql的 similar to。具体语法参照Postgresql 8.1的文档第9.7节。 使用举例: similar_to("abc","a%",NULL) ,结果返回true similar_to("abc","b",NULL) ,结果返回false 4、extern char *text_regex_substr(const char * data,const char * re_val); 参 数: data 用户字符串, 类型是 const char * re_val 式正则表达式,类型是 const char * 返 回 值: char * ,如果有匹配子字符串,则返回相应的字符串,否则返回NULL。返回值是动态分配的内存,一定要用free 释放返回值。 功 能: 根据正则表达式取子字符串, 特殊说明: 此函数动态分配内存,一定要用free 释放返回值。 使用举例: text_regex_substr("hello world","e...") ,结果返回"ello" 5、char * text_regex_replace(const char * s,const char * p,const char * r); 参 数: s 用户原字符串, 类型是 const char * p 正则表达式,类型是 const char * r 替换字符串,类型是 const char * 返 回 值: char * ,返回替换后的字符串。返回值是动态分配的内存,一定要用free 释放返回值。 功 能: 子字符串的替换, 特殊说明: 此函数动态分配内存,一定要用free 释放返回值。 使用举例: text_regex_substr("hello world","e...","ooo") ,结果返回"hooo world"

近期下载者

相关文件


收藏者