C 正規表示式判斷字串能否表示整數

2021-07-28 07:30:59 字數 2243 閱讀 6001

gnu正規表示式庫是glibc(gnu c library)的一部分,它提供與posix標準相容的正規表示式匹配的介面。

這裡是其主頁:

參考: gnu正規表示式庫

參考: 深入淺出c/c++中的正規表示式庫

函式說明

c語言中使用正規表示式一般分為三步:

編譯正規表示式 regcomp()

匹配正規表示式 regexec()

釋放正規表示式 regfree()

下邊是對三個函式的詳細解釋

引數說明:

①compiled 是已經用regcomp函式編譯好的正規表示式。

②string 是目標文字串。

③nmatch 是regmatch_t結構體陣列的長度。

④matchptr regmatch_t型別的結構體陣列,存放匹配文字串的位置資訊。

⑤eflags 有兩個值

*reg_notbol 按我的理解是如果指定了這個值,那麼』^』就不會從我們的目標串開始匹配。總之我到現在還不是很明白這個引數的意義;

reg_noteol 和上邊那個作用差不多,不過這個指定結束end of line。*

set, then

thebeginning-of-line operator doesn't match

thebeginning

ofthe

string (presumably because it's not

thebeginning

of a line).

if not

set, then

thebeginning-of-line operator does match the

beginning

ofthe

string. */

#define reg_notbol 1

/* like reg_notbol, except for

theend-of-line. */

#define reg_noteol (1 << 1)

3. void regfree (regex_t *compiled) 當我們使用完編譯好的正規表示式後,或者要重新編譯其他正規表示式的時候,我們可以用這個函式清空compiled指向的regex_t結構體的內容,請記住,如果是重新編譯的話,一定要先清空regex_t結構體。 4. size_t regerror (int errcode, regex_t *compiled, char *buffer, size_t length) 當執行regcomp 或者regexec 產生錯誤的時候,就可以呼叫這個函式而返回乙個包含錯誤資訊的字串。 引數說明: ①errcode 是由regcomp 和 regexec 函式返回的錯誤代號。 ②compiled 是已經用regcomp函式編譯好的正規表示式,這個值可以為null。 ③buffer 指向用來存放錯誤資訊的字串的記憶體空間。 ④length 指明buffer的長度,如果這個錯誤資訊的長度大於這個值,則regerror 函式會自動截斷超出的字串,但他仍然會返回完整的字串的長度。所以我們可以用如下的方法先得到錯誤字串的長度。 size_t length = regerror (errcode, compiled, null, 0);

本來是char *str 轉為整數的題( 由於原題意思是可以擷取,不用進行正則判斷, 將正則po出來,記錄於此。熟悉c語言正則的過程。

#include

#include

#include

int isint(char *str) [0-9]$)|(^[-+]1[0-9]$) |(^[-+]?21[0-3][0-9]$)|(^[-+]?214[0-6][0-9]$)|(^[-+]? 2147[0-3][0-9]$)|(^[-+]? 21474[0-7][0-9]$)|(^[-+]?214748[0-2][0-9]$)|(^[-+]? 2147483[0-5][0-9]$)|(^[-+]?21474836[0-3][0-9]$)|(^+?214748364[0-7]$)|(^-214748364[0-8]$)";

int cflags = reg_extended;

regex_t reg;

int nerrcode = 0;

if ((nerrcode = regcomp(®, pattern, cflags)) == 0)

else }}

regfree(®);

return ans;

}

正規表示式匹配字串

正規表示式用於字串處理 表單驗證等場合,實用高效。現將一些常用的表示式收集於此,以備不時之需。匹配中文字元的正規表示式 u4e00 u9fa5 評注 匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元 包括漢字在內 x00 xff 評注 可以用來計算字串的長度 乙個雙位元組字元長度計...

正規表示式匹配 字串

正規表示式匹配字串 假使,有幾個需要驗證的字串用 連線在一起 形如 farmer1,1farmer234 想用正規表示式來匹配每乙個字串。private static string sourcestr farmer1,1farmer234 private static string key farm...

字串教程 正規表示式

正規表示式適合很多種語言不單單是c 匹配除換行符以外的任意字元 w 匹配字母,數字,下劃線,漢字 w 小w的補集 就是和小w相反的 s 匹配 任意空白符 包括換行符 n,回車符 r,製表符 t,垂直製表符 v,換頁符 f d 匹配數字 0 9數字 abc 匹配括號中的字元 a c a字元到c字元 x...