1、 編譯正則表達字串regcomp
i. 標頭檔案:#include#include
ii. 函式原型:int regcomp(regex_t * preg, const char *regex, int cfalgs);
iii. 函式說明:引數preg為一指標,指向pattern buffer,用來存放編譯後的結果。引數regex指向正規表示式的字串,而引數cflags則是旗標。
引數cflags有下列幾種情況,可以用or(|)組合:
reg_extended 使用posix延伸正則表示語法,否則使用posix基本語法。
reg_icase 忽略大小寫的差異。
reg_nosub 忽略引數nmatch和pmatch。
reg_newline 特殊字元.將不會以換行字元作比較,特殊字元^則表達換行符後的第乙個位置,特殊字元$則表達換行符的前乙個位置。
v. 附加說明:正規表示式(regular expression:簡稱re)是以字串來表達某種規則的字串集合,以便作搜尋之用。
2、 取得正則搜尋的錯誤原因regerror
i. 標頭檔案:#include3、 進行正規表示式的搜尋regexec#include
ii. 函式原型:size_t regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size);
iii. 函式說明:regerror()用來取得經regcomp()或regexec()的錯誤原因。引數errcode為之前regcomp()或regexec()返回的錯誤**。而引數preg為一指標,指向
pattern buffer,引數errbuf指向欲存放錯誤字串的緩衝區,引數errbuf_size則為該緩衝區大小。
iv. 返回值:返回錯誤字串的長度。
i. 標頭檔案:#include#include
ii. 函式原型:int regexec(const regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch, int eflags);
iii. 函式說明:引數preg為一指標,指向pattern buffer,此為先經regcomp()編譯後的結果。引數string指向欲尋找的字串位址,引數nmatch代表pmatch陣列的大小,
引數pmatch則為一結構陣列,regexec()會將搜尋後的結果以此結構陣列返回。
【注】:以小括號作為分隔符。
結構體regmatch_t的定義如下:
typedef struct
regmatch_t;
rm_so代表符合條件的起始位置。
rm_eo 代表符合條件的結束位置。
如果rm_so的值為-1,則代表此結構並未讓regexec()使用。
引數eflags有兩種可能值,可使用or(|)組合:
reg_notbol 讓特殊字元^無作用
reg_noteol 讓特殊字元$無作用
4、 釋放正規表示式使用的記憶體regfree
i. 標頭檔案:#include5、 示例**#include
ii. 函式原型:void regfree(regex_t *preg);
iii. 函式說明:此函式用來釋放先前regcomp()和regexec()使用的pattern buffer。引數preg為指向此pattern buffer的指標。
iv. 返回值: 無
#include
#include
#include
int main(void) ;
char result[1024] = "\0";
if(regcomp(&preg, "([^:]*:)([^*!:]*)(.*)",
reg_extended|reg_newline) != 0)
regexec(&preg,buf,4,pmatch,0);
for(i=0;i<4;i++)
regfree(&preg);
return 0;
} **功能:擷取第一冒號和第二冒號之間的資料。
執行結果: [0] rm_so:0 rm_eo:27
7769:jkl:15518:0:99999:7:::
[1] rm_so:0 rm_eo:5
7769:
[2] rm_so:5 rm_eo:8
jkl[3] rm_so:8 rm_eo:27
:15518:0:99999:7:::
php正規表示式函式詳解
注 本文參考php5 幫助文件 ereg replace php 3,php 4 ereg replace 替換正規表示式 說明string ereg replace string pattern,string replacement,string string 本函式在 string 中掃瞄與 p...
正規表示式詳解
正規表示式 基本正規表示式主要用於grep,egrep,vi,sed,awk命令中進行字串匹配。符號 意義 c 匹配字母c 匹配任意單個字元 匹配前乙個字元出現零次或多次 匹配任意多個任意字元 匹配集合中的任意單個字元,括號中為乙個集合 x y 匹配連續的字串範圍 匹配字串的開頭 匹配字串的結尾 匹...
正規表示式詳解
正規表示式主要作用 分割 匹配 查詢 替換 正規表示式中包括的元素 1.原子 普通字元 a z a z 0 9 原子表 轉義字元 2.元字元 有特殊功能的字元 3.修正模式符 系統內建部分字元,例如 i m s u 原子 1.a z a z 0 9 最常見的字元 2.abc 用圓括號包含起來的單元符...