C/C++知識(shí)分享:C語(yǔ)言正則表達(dá)式!
C語(yǔ)言的正則表達(dá)式規(guī)則,特此跟大家分享。
一、C語(yǔ)言如何使用正則表達(dá)式?
C語(yǔ)言使用正則表達(dá)式的方法很簡(jiǎn)單,只需要包含正則表達(dá)式頭文件即可:
#include<regex.h>
相關(guān)函數(shù):
regcomp():編譯正則表達(dá)式
regexec():進(jìn)行模式匹配
regfree():當(dāng)不再需要編譯的正則表達(dá)式時(shí)要將其釋放
使用時(shí)依次調(diào)用這些函數(shù)即可。其中特別需要提出是regexec()函數(shù)的最后一個(gè)參數(shù),有如下四種選擇:
REG_EXTENDED以功能更加強(qiáng)大的擴(kuò)展正則表達(dá)式的方式進(jìn)行匹配;
REG_ICASE匹配字母時(shí)忽略大小寫;
REG_NOSUB不用存儲(chǔ)匹配后的結(jié)果;
REG_NEWLINE識(shí)別換行符號(hào)。
一般,我們選擇第一個(gè)功能更強(qiáng)大的擴(kuò)展表達(dá)式即可。

下面是一個(gè)封裝這些函數(shù)的例子(供參考):
二、正則表達(dá)式規(guī)則
1. 單字符匹配

舉例:
字符串:Hi, 2016!
表達(dá)式:\\w\\w\\W\\s\\S\\d.\\D
注意:因?yàn)镃語(yǔ)言解析字符串時(shí)也會(huì)區(qū)分轉(zhuǎn)義字符'\',所以我們的正則表達(dá)式需要在每個(gè)轉(zhuǎn)移字符前再加一個(gè)'\'才可以,像"\\w"
2.字符數(shù)量匹配

舉例:
字符串:Hi, 20160422!
表達(dá)式:\\w{2},\\s2?0+1*\\d{1,5}!
3.字符位置匹配

舉例:
字符串:Hi, 20160422!
表達(dá)式:^Hi,\\s\\d{8}!$
4.選擇匹配

舉例:
字符串:www.123123123e5rt6yDF.com
表達(dá)式:\\w{3}\\.(123){3}[5-6e-y]{6}[^5-6e-y]{2}\\s(com|COM)$
三、最后
本文只介紹了正則表達(dá)式的一部分匹配規(guī)則,大多是常用的,還有些更高級(jí)的用法等以后用到了再更新。另外,文中匹配時(shí)舉的例子都是為了便于理解而舉的,實(shí)際使用時(shí)可以更精簡(jiǎn)。
另外的話,作為一名程序員,如果你想更好的提升你的編程能力,好好學(xué)習(xí)C/C++編程知識(shí),以后努力成為高薪軟件開發(fā)工程師的話!
微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地
分享(源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!
