c语言正则表达式
A. 如何使用正则表达式匹配c语言的变量名定义规则
需要使用一个字符串作为c语言中的变量名,这个字符串必须满足下面的要求:
1.只包含数字,ASCII字母,下划线
2.以字母或者下划线开头
B. 正则表达式[a-c[m–t]]是什么意思
正则表达式 [a-c[m-t]] 表示abc或者m到t中的任意一个字符
[a-c[m-t]]+ 表示abc或者m到t中的一个以上的多个字符组成的字符串
但是,并不是所有语言都支持这种形式(比如 javascript语言就不支持,而Java语言就支持),更通常的写法是[a-cm-t].
我给你一个Java语言你这种写法的例子,你看完就明白了.
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassAA{
publicstaticvoidmain(String[]args){
Stringstr="abcmnopqrst";
Stringregex="^[a-c[m-t]]+$";
Patternp=Pattern.compile(regex);
Matcherm=p.matcher(str);
if(m.matches()){
System.out.println("验证通过");
}else{
System.out.println("验证不通过");
}
}
}
运行结果
验证通过
C. C语言的正则表达式相关提问。
prce是著名的开源正则库,源码是C。包括php,perl,python等语言都在直接或间接使用该库。
pcre *re 指向整个版库对象或结构体的权指针,
pcre 意思Perl Compatible Regular Expressions,perl语言兼容型正则(库)
re意思regular expression正则
头文件、源码去pcre官网下载。
头文件的详解,就要看文档,学习调用和使用该库。
文档都写着。
另外这个库是为开发者准备的正则中间件,嵌入程序中,使程序能解析正则。
不是专为正则的初学者练习正则而设置。学习文档会不少,
需要熟练整个c库操作流程和常用原理后直接去看源码。
D. C语言有正则表达式吗
1、标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一功能,其中最著名的当数Philip Hazel的Perl-Compatible Regular Expression库,许多Linux发行版本都带有这个函数库。
E. 如何在C语言中巧用正则表达式
sscanf
取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。
sscanf("123456abcdedfBCDEF","%[1-9a-z]",buf);
printf("%s\n",buf);
给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中
sscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf);
printf("%s\n",buf);
结果为:123456abcdedf
http://ke..com/link?url=ZO-DAritgCoX9mmRA--1WbzOKbzEn-5T4MhgljTpSCt-Fq
F. 编译原理:c语言标识符的正则表达式
C语言中的标识符:
标识符由字母、数字、下划线“_”组成,并且首字母不能是数字.
专java语言中属的标识符:
标识符由字母、数字、下划线“_”、美元符号“$”组成,并且首字母不能是数字。
一般标识符由字母、数字、下划线“_”组成
如果只能以下划线、英文字母开头,后跟单词字符的话:
^[A-Za-z_][A-Za-z0-9_]*$
G. C语言用正则表达式的例子
^在格式化输复入的时候可以制用正则表达式
其它地方貌似没有应用。
123456int i;char str[80], str2[80];scanf("%d%[abc]%s", &i, str, str2); scanf("%[a-zA-Z0-9]", str);scanf("%[^abce]", str);scanf("%[^a-z]", str);
这几个都是用正则表达式的。
如果不理解
可以自己搜一下
scanf
正则表达式
网上有很多人讲的,我就不复制了。
H. C语言怎么用正则表达式
借用c的正则表达式库,需要引入头文件<regex.h>。支持POSIX.2正则表达式标准。简单用法如:专
regex_t reg; //先声明一个正属则表达式体。
regcomp(®, "[a-zA-Z]*", 0); //从字符串来编译这个表达式。
regmatch_t match[2]; //用来保存匹配结果。
regexec(®, "abcedfg", 2, match, 0); //匹配字符串。
此外,c++中也有自己的正则表达式库,比如boost::regex。需要先安装boost库才能使用。
I. 请教c语言的注释用正则表达式怎么写
1、标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一功能,其中最著名的当数Philip Hazel的Perl-Compatible Regular Expression库,许多Linux发行版本都带有这个函数库。
2、C/C++ 中使用正则表达式一般分为三步:
1)编译正则表达式 regcomp()
int regcomp (regex_t *compiled, const char *pattern, int cflags)
这个函数把指定的正则表达式pattern编译成一种特定的数据格式compiled,这样可以使匹配更有效。函数regexec 会使用这个数据在目标文本串中进行模式匹配。执行成功返回0。
2)匹配正则表达式 regexec()
int regexec (regex_t *compiled, char *string, size_t nmatch, regmatch_t matchptr [], int eflags)
当编译好正则表达式后,就可以用regexec 匹配我们的目标文本串了,如果在编译正则表达式的时候没有指定cflags的参数为REG_NEWLINE,则默认情况下是忽略换行符的,也就是把整个文本串当作一个字符串处理。执行成功返回0。
3)释放正则表达式 regfree()
void regfree (regex_t *compiled)
当使用完编译好的正则表达式后,或者要重新编译其他正则表达式的时候,可以用这个函数清空compiled指向的regex_t结构体的内容。请注意,如果是重新编译的话,一定要先清空regex_t结构体。