在實際開發中,作一些字串的匹配時,使用正規表示式來過濾匹配,**更加簡潔、匹配更加精準。為此,想到引入乙個問題來總結記錄一下 linux c 中正規表示式的使用方法。
一、問題描述
要求使用者輸入一串類似ip位址的字串,該程式通過呼叫c庫提供的正規表示式介面來實現判斷使用者輸入的 ip 是否合法。
二、匹配 ip位址正規表示式
^[0-9][.][0-9][.][0-9][.][0-9]$
注意:此表示式只匹配正確的 ip格式,標準ip為[0-255].[0-255].[0-255].[255],不判斷使用者輸入的ip值大小,即使用者輸入 999.999.999.999 時,正則匹配為正確的 ip格式,實際 ip值的大小可通過在程式中判斷是否為 【0-255】。
三、正則函式介面
c正則函式宣告標頭檔案為: 和
四、c**實現
#include
#include
#include
#include
#define error_size 256
char errbuf[error_size]=;
static
void
check_ip_format
(regex_t *ipreg,
const
char
*ip_str)
else
if(status == reg_nomatch)
return;}
intmain()
;char
*ip_format =
"^[0-9][.][0-9][.][0-9][.][0-9]$"
;// 編譯正規表示式
regex_t ipreg;
int reg =
regcomp
(&ipreg, ip_format, reg_extended);if
(reg !=0)
while(1
)check_ip_format
(&ipreg, ip_str);}
regfree
(&ipreg)
;return0;
}
五、執行結果
上面程式能夠匹配出使用者輸入的 ip 是否是數字,並且是否滿足標準ip格式,具體數字大小可以另行判斷
正則匹配IP
分析 ip位址的長度為32位,分為4段,每段8位,用十進位制數字表示,每段數字範圍為0 255 2 8 段與段之間用英文句點 隔開。例如 某台計算機ip位址為10.11.44.100。ip位址的組成特點 250 255 200 249 0 199。分別考慮 這三種情況可以分開考慮,1.250 255...
正則匹配IP
分析 ip位址的長度為32位,分為4段,每段8位,用十進位制數字表示,每段數字範圍為0 255 2 8 段與段之間用英文句點 隔開。例如 某台計算機ip位址為10.11.44.100。ip位址的組成特點 250 255 200 249 0 199。分別考慮 這三種情況可以分開考慮,1.250 255...
python正則匹配ip位址
用正則匹配ip位址 可以將ip位址按區間分類 0 99 1 9 d 表示十位數有1個或無 100 199 1 d 200 249 2 0 5 d 250 255 25 0 5 前面三位ip都帶.讓他們擴張三次。最後一位ip不帶.再來一次 import re g se215.255.255.155 5...