Qt的正則表達式類(QRegExp)


正則表達式在qt中具有重要的作用,現依據qregexp的英文介紹進行簡要介紹。正則表達式有四個主要作用:

1,有效性檢查,檢測字符串是否滿足一定要求,比如包含一個數字或不包含空格。

2,查找,提供了比簡單字符匹配更加強大的匹配模型,比如包含一個或者多字單詞,或者不包含某些單詞。

3,查找和替換,對字符串中的不同字符串進行替換。

4,字符串分割,正則表達式作為一個表示進行字符串分割。

qregexp基於perl的正則表示式語言,支持unicode編碼,也支持通配符。通過setPartternSyntax改變qregexp使用的規則。qt5中,QRegularExpression類提供了一種正則表達式管理,兼容perl規則,建議替代QRegExp。

正則表達式包含了表達式、量詞和斷言。最簡單表達式是一個字符,例如 x或 5,表達式也可以是一個位於方括弧內的字符串,[ABCD],將匹配A 或B或C或D,或[A-D]。匹配任意一個字符,寫為[A-Z]。

量詞指明發生的次數,x{1,1}表示x發生且只能發生一次,x{1,5}表示x至少發生一次,不超過5次。正則表達式不能用來檢測括號或標簽是否平衡。

[0-9]{1,1}匹配0-9之間的數字,[0-9]{1,2}匹配0-99之間的數字。這兩個正則表達式可匹配字符串的任何位置。^[0-9]{1,2}$表示整個字符串只包含0-99之間的數字。

[0-9]可用\d代替,0-99的數字的匹配可寫為^\d{1,2}$,也可寫為^\d\d{0,1}$,或^\d\d?$。?表示{0,1}。

(mail|letter|correspondence)匹配包含了mail、letter、correspondence三個單詞中的一個,可能是email,letters等;\b(mail|letter|correspondence)\b,匹配三個完整單詞中的任何一個,只能是mail、letter等。

檢測單詞Eric或Eirik有兩種正則表達式: \b(Eric|Eirik)\b 和\bEi?ri[ck]\b,\b避免出現類似Ericsson的單詞。

 

字符和字符縮寫:

這些介紹,比較抽象,建議結合例子來看。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM