当前位置: 技术问答>linux和unix
特急!!!如何使用regexp来进行正则表达式的匹配?
来源: 互联网 发布时间:2014-10-24
本文导语: 如何使用regexp来进行正则表达式的匹配? 下面这个程序有何不妥,请各位打下指正: #define INIT register char *sp=instring; #define GETC() (*sp++) #define PEEKC() (*sp) #define UNGETC(c) (--sp) #define RETURN(c) return; #define ER...
如何使用regexp来进行正则表达式的匹配?
下面这个程序有何不妥,请各位打下指正:
#define INIT register char *sp=instring;
#define GETC() (*sp++)
#define PEEKC() (*sp)
#define UNGETC(c) (--sp)
#define RETURN(c) return;
#define ERROR(c) regerr()
#include
#include
main()
{
char expbuf[10];
char linebuf[80];
strcpy(expbuf,"^[0-9]*$");
compile((char *)0,expbuf,&expbuf[sizeof(expbuf)],'');
for (;;)
{
printf("please input a string:n");
scanf("%sn",linebuf);
if (step(linebuf,expbuf))
{
printf("success!n");
}
else
printf("failed!n");
}
}
编译时提示regerr未定义,不知何故?希望各位大虾能以例程解答
请发email至bone_dragon@21cn.com,多谢!
下面这个程序有何不妥,请各位打下指正:
#define INIT register char *sp=instring;
#define GETC() (*sp++)
#define PEEKC() (*sp)
#define UNGETC(c) (--sp)
#define RETURN(c) return;
#define ERROR(c) regerr()
#include
#include
main()
{
char expbuf[10];
char linebuf[80];
strcpy(expbuf,"^[0-9]*$");
compile((char *)0,expbuf,&expbuf[sizeof(expbuf)],'');
for (;;)
{
printf("please input a string:n");
scanf("%sn",linebuf);
if (step(linebuf,expbuf))
{
printf("success!n");
}
else
printf("failed!n");
}
}
编译时提示regerr未定义,不知何故?希望各位大虾能以例程解答
请发email至bone_dragon@21cn.com,多谢!
|
maybe this will help: ----------------------------------- /* **regtest.c: 已在linux(egcs) & solaris(gcc-2.95.2) 下调试通过 */ #include #include main() { regex_t re; char *expbuf="^[0-9]*$"; char linebuf[80]; regmatch_t pmatch[16]; regcomp(&re,expbuf,0); for (;;){ printf("please input a string:n"); scanf("%s",linebuf); if(0 == regexec(&re, linebuf, 16,pmatch,0)) printf("success!n"); else printf("failed!n"); } }