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結構體。