天天看點

fei 正規表達式_QRegExp正規表達式

"^/d+$"  //非負整數(正整數 + 0)

"^[0-9]*[1-9][0-9]*$"  //正整數

"^((-/d+)|(0+))$"  //非正整數(負整數 + 0)

"^-[0-9]*[1-9][0-9]*$"  //負整數

"^-?/d+$"    //整數

"^/d+(/./d+)?$"  //非負浮點數(正浮點數 + 0)

"^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮點數

"^((-/d+(/./d+)?)|(0+(/.0+)?))$"  //非正浮點數(負浮點數 + 0)

"^(-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //負浮點數

"^(-?/d+)(/./d+)?$"  //浮點數

"^[A-Za-z]+$"  //由26個英文字母組成的字元串

"^[A-Z]+$"  //由26個英文字母的大寫組成的字元串

"^[a-z]+$"  //由26個英文字母的小寫組成的字元串

"^[A-Za-z0-9]+$"  //由數字和26個英文字母組成的字元串

"^/w+$"  //由數字、26個英文字母或者下劃線組成的字元串

"^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$"    //email位址

"^[a-zA-z]+://(/w+(-/w+)*)(/.(/w+(-/w+)*))*(/?/S*)?$"  //url

"^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$" // 年-月-日

"^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$" // 月/日/年

"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" //Email

"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?" //電話号碼

"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$" //IP位址

^([0-9A-F]{2})(-[0-9A-F]{2}){5}$ //MAC位址的正規表達式

^[-+]?/d+(/./d+)?$ //值類型正規表達式

QRegExp是Qt的正規表達式類.

Qt中有兩個不同類的正規表達式.

第一類為元字元.它表示一個或多個常量表達式.

令一類為 轉義字元,它代表一個特殊字元.

一.元字元

. 比對任意單個字元.例如, 1.3 可能是1. 後面跟任意字元,再跟3

^ 比對字元串首. 例如, ^12可能是123,但不能是312

$ 配字元串尾. 例如, 12$可以是312, 當不能是 123

[] 比對括号内輸入的任意字元.[123]可以為1, 2 或3

* 比對任意數量的前導字元. 例如, 1*2可以為任意數量個1(甚至沒有), 後面跟一個2

+ 比對至少一個前導字元. 例如, 1+2必須為一個或多個1, 後跟一個2

? 比對一個前導字元或為空. 例如 1?2可以為2或這12

二.統配模式

通過 QRegExp::setPatternSyntax(QRegExp::Wildcard);可以将元字元設定為統配模式.在統配模式下,隻有3個元字 符可以使用.他們的功能沒有變化.

? 比對任意單個字元, 例如, 1?2可以為1,後面跟任意單個字元, 再跟2

* 比對任意一個字元序列. 例如, 1*2, 可以為1, 後面跟任意數量的字元, 再跟一個2

[] 比對一個定義的字元集合. 例如, [a-zA-Z/.]可以比對 a到z之間任意一個字元和. [^a]比對出小寫a以外的字元.

三.轉義序列

/. 比對"."

/^ 比對"^"

/$ 比對"$"

/[ 比對"["

/] 比對"]"

/* 比對"*"

/+ 比對"+"

/? 比對"?"

/b 比對響鈴字元,使計算機發出嘟的一聲.

/t 制表符号

/n 換行符号

/r 回車符鉿

/s 任意空格

/xnn 比對16進制為nn的字元

/0nn 比對8進制的nn字元

這些表達式均以/開始, 與C++的轉義字元相同,是以為了定義QRegExp中的一個轉義序列,

需要在前面添加兩個//