简单正则表达式匹配字符串
发布时间:2020-12-14 02:08:08 所属栏目:百科 来源:网络整理
导读:字符 含义 c 匹配任意的字母c . (句点) 匹配任意的单个字符 ^ 匹配输入字符串的开头 $ 匹配输入字符串的结尾 * 匹配前一个字符的零个或者多个出现 例如:程序名 rock heisarockboy 匹配成功返回1; 程序名 rock heisaboy 匹配失败返回0; 程序名 ^.he.*boy
字符 含义 c 匹配任意的字母c . (句点) 匹配任意的单个字符 ^ 匹配输入字符串的开头 $ 匹配输入字符串的结尾 * 匹配前一个字符的零个或者多个出现 例如:程序名 rock heisarockboy 匹配成功返回1; 程序名 rock heisaboy 匹配失败返回0; 程序名 ^.he.*boy$ sheisarockboy 匹配成功返回1 在文件中查找含有指定表达式可以将文件中字符串划分,然后对每个字符串调用该函数,如果匹配成功可以返回该字符串,最后将结果一起呈现。 #include <stdio.h>
int matchhere(char *regexp,char *text);
int matchstar(int c,char *regexp,char *text);
int match(char *regexp,char *text)
{
if (regexp[0] == '^')
{
return matchhere(regexp+1,text);
}
do
{
if (matchhere(regexp,text))
{
return 1;
}
} while (*text++ !=' ');
return 0;
}
int matchhere(char *regexp,char *text)
{
if (regexp[0]==' ')
{
return 1;
}
if (regexp[1]=='*')
{
return matchstar(regexp[0],regexp+2,text);
}
if (regexp[0]=='$'&?exp[1]==' ')
{
return *text==' ';
}
if (*text!=' '&&(regexp[0]=='.'||regexp[0]==*text))
{
return matchhere(regexp+1,text+1);
}
return 0;
}
int matchstar(int c,char *text)
{
do
{
if (matchhere(regexp,text))
{
return 1;
}
} while (*text!=' '&&(*text++==c||c=='.'));
}
int main(int argc,char *argv[])
{
if (argc!=3)
{
printf("error input!");
return 0;
}
else{
int i=match(argv[1],argv[2]);
printf("%d",i);
return i;
}
} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |