简单正则表达式匹配字符串
2013-09-15 10:02
176 查看
字符 含义
c 匹配任意的字母c
. (句点) 匹配任意的单个字符
^ 匹配输入字符串的开头
$ 匹配输入字符串的结尾
* 匹配前一个字符的零个或者多个出现
例如:程序名 rock heisarockboy 匹配成功返回1;
程序名 rock heisaboy 匹配失败返回0;
程序名 ^.he.*boy$ sheisarockboy 匹配成功返回1
在文件中查找含有指定表达式可以将文件中字符串划分,然后对每个字符串调用该函数,如果匹配成功可以返回该字符串,最后将结果一起呈现。
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++ !='\0'); return 0; } int matchhere(char *regexp,char *text) { if (regexp[0]=='\0') { return 1; } if (regexp[1]=='*') { return matchstar(regexp[0],regexp+2,text); } if (regexp[0]=='$'&®exp[1]=='\0') { return *text=='\0'; } if (*text!='\0'&&(regexp[0]=='.'||regexp[0]==*text)) { return matchhere(regexp+1,text+1); } return 0; } int matchstar(int c,char *regexp,char *text) { do { if (matchhere(regexp,text)) { return 1; } } while (*text!='\0'&&(*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; } }
相关文章推荐
- 关于利用正则表达式捕获匹配的字符串的简单功能(java)
- JS全局正则表达式匹配同一字符串结果不一致
- 正则表达式找程序实用例子:正则表达式匹配不报含指定字符串,匹配后面跟着指定字符串
- 简单的正则表达式匹配 Regular Expression Matching
- QTP脚本中使用正则表达式,匹配字符串方法
- 匹配字符串的图片的正则表达式
- 正则表达式模式匹配字符串基础知识
- 正则表达式匹配字符串的问题
- Java正则表达式,匹配、替换字符串中的占位符
- 匹配两个字符串之间的内容(正则表达式)
- java 使用正则表达式获取匹配的字符串
- Python使用中文正则表达式匹配指定中文字符串的方法示例
- 正则表达式怎样匹配 不包含特定字符串的字符串
- 正则表达式 字符串完全匹配
- 关于6位十六进制字符串的正则表达式匹配
- 贡献一个在匹配字符串前后插入字符的js正则表达式
- 简单入门正则表达式 - 第五章 多字符的匹配
- 正则表达式匹配 字符串
- leetcode 10 Regular Expression Matching(简单正则表达式匹配)
- Apache - 模块 - mod_rewrite - RewriteRule - 匹配任意字符串时,可以借助正则表达式的灵活特性