qt 獲取QString 中的數字

2021-10-08 02:45:45 字數 2571 閱讀 8134

比如qstring str = 「123你好456你好」我們要從這個str中提取出「123456」

qstring str = 「123你好456你好」;

qstring tmp;

for(

int j =

0; j < str.

length()

; j++

)

這樣tmp中存放的就是「123456」。

聽說用正規表示式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|d)-((0([1-9]))|(1[1|2]))-(([0-2]([1-9]))|(3[0|1]))$"

// 年-月-日

"^((0([1-9]))|(1[1|2]))/(([0-2]([1-9]))|(3[0|1]))/(d|d)$"

// 月/日/年

"^([w-.]+)@(([[0-9].[0-9].[0-9].)|(([w-]+.)+))([a-za-z]|[0-9])(]?)$"

//email

"(d+-)?(d-?d|d-?d|^d)(-d+)?"

//**號碼

"^(d|1dd|2[0-4]d|25[0-5]).(d|1dd|2[0-4]d|25[0-5]).(d|1dd|2[0-4]d|25[0-5]).(d|1dd|2[0-4]d|25[0-5])$"

//ip位址^(

[0-9a-f])(

-[0-

9a-f]

)$ //mac位址的正規表示式 ^[

-+]?\d+

(\.\d+

)?$ //值型別正規表示式

qregexp是qt的正規表示式類.

qt中有兩個不同類的正規表示式.

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

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

一.元字元

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

^ 匹配字串首. 例如, ^12可能是123,但不能是312

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

匹配括號內輸入的任意字元.[123]可以為1, 2 或3

二.統配模式

通過 qregexp::setpatternsyntax(qregexp::wildcard);可以將元字元設定為統配模式.在統配模式下,只有3個元字 符可以使用.他們的功能沒有變化.

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

三.轉義序列

. 匹配"."

^ 匹配"^"

$ 匹配"$"

[ 匹配"["

] 匹配"]"

* 匹配"*"

+ 匹配"+"

? 匹配"?"

\b 匹配響鈴字元,使計算機發出嘟的一聲.

\t 製表符號

\n 換行符號

\r 回車符鉿

\s 任意空格

\xnn 匹配16進製為nn的字元

\0nn 匹配8進製的nn字元

這些表示式均以\開始, 與c++的轉義字元相同,所以為了定義qregexp中的乙個轉義序列,

需要在前面新增兩個\

QT中QString與數字型別的轉換

把qstring轉換為 double型別 方法1.qstring str 123.45 double val str.todouble val 123.45 方法2.很適合科學計數法形式轉換 bool ok double d d qstring 1234.56e 02 todouble ok ok ...

QT中QString與數字型別的轉換

把qstring轉換為 double型別 方法1.qstring str 123.45 double val str.todouble val 123.45 方法2.很適合科學計數法形式轉換 bool ok double d d qstring 1234.56e 02 todouble ok ok ...

Qt中QString的比較

一般情況下,我們會使用compare來進行比較,具體的返回結果如下 qstring compare ab ab 值為0 qstring compare ab df 值為 0 qstring compare df ab 值為 0 使用這個函式時可以新增第三個引數 qstring compare df ...