最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Qt中正則表達(dá)式的常見(jiàn)用法(QRegularExpression類(lèi))

 更新時(shí)間:2024年05月13日 10:50:43   作者:激昂~逐流  
正則表達(dá)式即一個(gè)文本匹配字符串的一種模式,Qt中使用QRegExp類(lèi)進(jìn)行模式匹配,下面這篇文章主要給大家介紹了關(guān)于Qt中正則表達(dá)式的常見(jiàn)用法,文中介紹的是QRegularExpression類(lèi)的相關(guān)資料,需要的朋友可以參考下

一.基本功能介紹: 

在Qt中,可以使用QRegularExpression類(lèi)來(lái)處理正則表達(dá)式。以下是一些常用的正則表達(dá)式用法:

1.創(chuàng)建正則表達(dá)式對(duì)象:

QRegularExpression regex("pattern");

2.匹配字符串:

QString str = "Hello, World!";
if (regex.match(str).hasMatch()) {
    qDebug() << "Match found!";
} else {
    qDebug() << "No match found!";
}

3.捕獲匹配的內(nèi)容:

QRegularExpressionMatch match = regex.match(str);
if (match.hasMatch()) {
    qDebug() << "Captured text: " << match.captured();
}

4.替換匹配的內(nèi)容:

QString replacedStr = regex.replace(str, "replacement");

5.檢測(cè)是否匹配:

if (regex.isValid()) {
    qDebug() << "Valid regex pattern!";
} else {
    qDebug() << "Invalid regex pattern!";
}

6.使用捕獲組:

QRegularExpression regex("(\\d+):(\\w+)");
QString str = "123:abc";
QRegularExpressionMatch match = regex.match(str);
if (match.hasMatch()) {
    qDebug() << "Number: " << match.captured(1);
    qDebug() << "Text: " << match.captured(2);
}

二.寫(xiě)法介紹

2.1:匹配的示例

當(dāng)使用正則表達(dá)式時(shí),可以根據(jù)具體的需求和匹配規(guī)則來(lái)編寫(xiě)不同的正則表達(dá)式模式。以下是一些常見(jiàn)的正則表達(dá)式寫(xiě)法示例:

匹配數(shù)字:\d+

  • 示例:匹配一個(gè)或多個(gè)數(shù)字,例如:"123", "4567"等。

匹配字母:[a-zA-Z]+

  • 示例:匹配一個(gè)或多個(gè)字母,不區(qū)分大小寫(xiě),例如:"abc", "XYZ"等。

匹配郵箱地址:\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z|a-z]{2,}\b

  • 示例:匹配常見(jiàn)的郵箱地址格式,例如:"example@example.com", "test123@test.com"等。

匹配URL:(http|https)://([\w-]+.)+[\w-]+(/[\w-./?%&=]*)?

  • 示例:匹配常見(jiàn)的URL格式,例如:"http://www.example.com", "https://www.test.com/page1"等。

匹配手機(jī)號(hào)碼:1\d{10}

  • 示例:匹配中國(guó)大陸手機(jī)號(hào)碼格式,以1開(kāi)頭,共11位數(shù)字,例如:"13912345678", "18888888888"等。

2.2:相關(guān)符號(hào)介紹 

在正則表達(dá)式中,*、?、+、{n} 等符號(hào)被稱(chēng)為量詞,用于指定匹配模式中前面字符的重復(fù)次數(shù)或出現(xiàn)情況。下面詳細(xì)介紹一些常用的量詞及其作用:

*(星號(hào)):表示匹配前面的字符零次或多次。

  • 示例:ab* 可以匹配 "a", "ab", "abb", "abbb" 等。

+(加號(hào)):表示匹配前面的字符至少一次或多次。

  • 示例:ab+ 可以匹配 "ab", "abb", "abbb" 等,但不能匹配 "a"。

?(問(wèn)號(hào)):表示匹配前面的字符零次或一次,即可選匹配。

  • 示例:ab? 可以匹配 "a", "ab",但不能匹配 "abb"。

{n}:表示匹配前面的字符恰好 n 次。

  • 示例:a{3} 可以匹配 "aaa",但不能匹配 "aa" 或 "aaaa"。

{n,}:表示匹配前面的字符至少 n 次。

  • 示例:a{2,} 可以匹配 "aa", "aaa", "aaaa" 等。

{n,m}:表示匹配前面的字符至少 n 次,最多 m 次。

  • 示例:a{2,4} 可以匹配 "aa", "aaa", "aaaa",但不能匹配 "a" 或 "aaaaa"。

這些量詞可以用于控制匹配模式中字符重復(fù)次數(shù)的范圍,使得正則表達(dá)式更加靈活和精確。在實(shí)際應(yīng)用中,根據(jù)具體的匹配需求和規(guī)則,可以靈活運(yùn)用這些量詞來(lái)構(gòu)建符合要求的正則表達(dá)式模式。

三.復(fù)雜樣例分析 

對(duì)^[a-zA-Z][\\w]{5,17}@([A-Za-z0-9\\-]+\\.)+[A-Za-z]{2,6}$進(jìn)行分析

這個(gè)表達(dá)式是用來(lái)匹配電子郵件地址的。解讀如下:

  • ^ 表示匹配輸入字符串的開(kāi)始位置
  • [a-zA-Z] 表示第一個(gè)字符必須是字母,不區(qū)分大小寫(xiě)
  • [\w]{5,17} 表示后面的字符可以是字母、數(shù)字或下劃線,且長(zhǎng)度在5到17之間
  • @ 表示匹配@符號(hào)
  • ([A-Za-Z0-9]+\\.)+ 表示匹配域名部分,可以包含字母、數(shù)字和短橫線,且必須以點(diǎn)號(hào)結(jié)尾,且可以重復(fù)多次
  • [A-Za-z]{2,6} 表示匹配頂級(jí)域名,可以是2到6個(gè)字母
  • $ 表示匹配輸入字符串的結(jié)尾位置

因此,這個(gè)表達(dá)式可以匹配形如"example123@example.com"的電子郵件地址。

附:Qt正則表達(dá)式(匹配正數(shù)、負(fù)數(shù)、浮點(diǎn)數(shù))

環(huán)境:QtCreator,功能:正則匹配正數(shù)、負(fù)數(shù)、浮點(diǎn)數(shù)

QString text="-10";
QString pattern("^(-?[0-9])|(-?\\d+)(\.\\d+)$"); //Qt匹配正數(shù)、負(fù)數(shù)、浮點(diǎn)數(shù)
QRegExp rx(pattern);
 
bool flag=rx.exactMatch(text.trimmed()); //trimmed() 去除字符串前后的空白字符
if(flag)
   qDebug()<<text;

解釋?zhuān)?/p>

  • -?  : 表示一個(gè)或者零個(gè)負(fù)號(hào)。?表示重復(fù)前面的字符0次或者1次
  • \d+:\d表示匹配一位數(shù)字,是轉(zhuǎn)義的字符,+表示前面的\d(數(shù)字)重復(fù)一次或者多次
  •  ^  :表示限定字符串的開(kāi)頭
  •  $  :限定字符串的結(jié)尾
  •  \.  :表示匹配小數(shù)點(diǎn)
  •  \   :用來(lái)標(biāo)記轉(zhuǎn)義字符
  •  |   : 表示或

總結(jié) 

到此這篇關(guān)于Qt中正則表達(dá)式的常見(jiàn)用法的文章就介紹到這了,更多相關(guān)Qt正則表達(dá)式的用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解析C++ 浮點(diǎn)數(shù)的格式化顯示

    解析C++ 浮點(diǎn)數(shù)的格式化顯示

    本篇文章是對(duì)C++中浮點(diǎn)數(shù)的格式化顯示進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • c語(yǔ)言實(shí)現(xiàn)把文件中數(shù)據(jù)讀取并存到數(shù)組中

    c語(yǔ)言實(shí)現(xiàn)把文件中數(shù)據(jù)讀取并存到數(shù)組中

    下面小編就為大家?guī)?lái)一篇c語(yǔ)言實(shí)現(xiàn)把文件中數(shù)據(jù)讀取并存到數(shù)組中。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • Microsoft Visual Studio 2022的安裝與使用詳細(xì)教程

    Microsoft Visual Studio 2022的安裝與使用詳細(xì)教程

    Microsoft Visual Studio 2022是Microsoft Visual Studio軟件的一個(gè)高版本,能夠編寫(xiě)和執(zhí)行C/C++代碼,具有強(qiáng)大的功能,是開(kāi)發(fā)C/C++程序的主流軟件,這篇文章主要介紹了Microsoft Visual Studio 2022的安裝與使用詳細(xì)教程
    2024-01-01
  • VSCode?IDE?配置環(huán)境過(guò)程解析

    VSCode?IDE?配置環(huán)境過(guò)程解析

    這篇文章主要介紹了VSCode?IDE?環(huán)境配置,這里說(shuō)的是僅使用?VSCode?創(chuàng)建C/CPP項(xiàng)目時(shí)的配置,VSCode?有代碼提示,?定位來(lái)源和各種快捷鍵,?更適合日常編碼工作,需要的朋友可以參考下
    2022-02-02
  • 談?wù)凜++中的單例

    談?wù)凜++中的單例

    這篇文章主要介紹了C++中單例的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下
    2020-09-09
  • c語(yǔ)言左移和右移的示例詳解

    c語(yǔ)言左移和右移的示例詳解

    這篇文章主要介紹了c語(yǔ)言左移和右移的示例詳解,移位操作符的兩個(gè)操作數(shù)必須是整型的。整個(gè)移位表達(dá)式的值的類(lèi)型也是整型的,而且,左移位操作符與右移位操作符的運(yùn)算并不對(duì)稱(chēng)。
    2020-07-07
  • 深入理解大數(shù)與高精度數(shù)的處理問(wèn)題

    深入理解大數(shù)與高精度數(shù)的處理問(wèn)題

    本篇文章是對(duì)大數(shù)與高精度數(shù)的處理進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C語(yǔ)言快速排序與二分查找算法示例

    C語(yǔ)言快速排序與二分查找算法示例

    這篇文章主要介紹了C語(yǔ)言快速排序與二分查找算法,涉及C語(yǔ)言隨機(jī)數(shù)生成、快速排序及二分查找等算法相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-01-01
  • Qt繪制時(shí)鐘效果

    Qt繪制時(shí)鐘效果

    這篇文章主要為大家詳細(xì)介紹了Qt繪制時(shí)鐘效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • C++實(shí)現(xiàn)選擇性排序(SelectionSort)

    C++實(shí)現(xiàn)選擇性排序(SelectionSort)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)選擇性排序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04

最新評(píng)論

菏泽市| 扬中市| 乳源| 阜康市| 民勤县| 锡林浩特市| 高尔夫| 沁源县| 和静县| 德江县| 岳池县| 濉溪县| 晋中市| 札达县| 玛纳斯县| 衡阳县| 惠东县| 屯昌县| 怀化市| 广东省| 奈曼旗| 惠水县| 泰顺县| 陕西省| 屯昌县| 印江| 澜沧| 宁德市| 两当县| 电白县| 江阴市| 独山县| 马边| 兴化市| 荣昌县| 定州市| 浪卡子县| 大连市| 桐城市| 华容县| 河间市|