QRegex提供字符串驗證,匹配,搜索,替換和切割的功能
一個比較簡單的例子是
QRegExp exp("-(.*)\(");
exp.setMinimal(true);
這兒匹配的是以-開頭,以(結(jié)束的字符串
基本的QRegex
1.isValid()判斷給定表達(dá)式是否合法
2.errorString()檢錯誤和isValid()類似
3.isEmpty()判斷正則表達(dá)式是否為空
4.caseSensitivity()檢測大小寫敏感
5.pattern()獲取正則表達(dá)式本身
6.capturedTexts
獲取捕獲的所有字符串
7.cap()獲取捕獲的字符串索引從1開始
8.numCaptures()返回匹配的字符串個數(shù)
9.
indexIn ( const QString & str, int offset = 0, CaretMode caretMode= CaretAtZero ) const
從字符串給定偏移匹配之
10.還有一個函數(shù)需要交代的是setMinimal(int minimal)
該函數(shù)主要作用是開啟或者關(guān)閉最小匹配
舉一個例子:
"We must be <b>bold</b>, very <b>bold</b>!" and the pattern <b>.*</b>.
如果設(shè)置正則表達(dá)式為<b>.*</b>
如果設(shè)置為最大匹配,則捕獲到<b>bold</b>,very <b>bold</b>
如果設(shè)置為正則表達(dá)式,
則第一次匹配到第一個<b>bold</b>
第二次匹配到第二個<b>bold</b>
基本的正則表達(dá)式如下:
\r 回車
\n 換行
\t 制表
\\ \本身
\" "
\^ ^
\$ $
\s 匹配空白符
\~ 匹配字符串開始
$ 匹配字符串結(jié)束
\b 單詞的開始或者結(jié)束
[] 匹配其中的一個字符 比如[abc]匹配a,b或者c [^abc]匹配a,b,c之外的字符 [a-c] 匹配a到c之間的字符
{n} 匹配出現(xiàn)n次 比如ab{2} 相當(dāng)于abb ab{1,3}相當(dāng)于ab,abb,abbb
{n,}最少出現(xiàn)n次
? 出現(xiàn)0,1次 比如ab[cd]?相當(dāng)于ab,abc,abd
++ 最少出現(xiàn)1次
* 不出現(xiàn)或者出現(xiàn)任意次,比如\^*c匹配 d,^d,^^d等