正則表達式在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的單詞。
字符和字符縮寫:

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