亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索

c++怎么使用正則表達式匹配字符串_c++ regex正則匹配用法

下次還敢
發(fā)布: 2025-10-15 20:17:01
原創(chuàng)
831人瀏覽過
C++中使用正則需包含<regex>頭文件,支持regex_match(完全匹配)、regex_search(部分搜索)、regex_replace(替換)和捕獲組提取,結(jié)合smatch處理結(jié)果,適用于文本驗證、查找與替換。

c++怎么使用正則表達式匹配字符串_c++ regex正則匹配用法

在C++中使用正則表達式需要借助<regex>頭文件提供的功能。從C++11開始,標準庫支持正則表達式操作,包括匹配、搜索、替換等。

包含頭文件和命名空間

要使用正則表達式,先引入頭文件:

#include <regex>
#include <iostream>
#include <string>

通常還會使用std::命名空間簡化代碼:

using namespace std;

基本匹配:regex_match

regex_match用于判斷整個字符串是否完全匹配某個正則模式。

立即學(xué)習(xí)C++免費學(xué)習(xí)筆記(深入)”;

示例:驗證一個簡單的手機號(以1開頭的11位數(shù)字)

string phone = "13812345678";
regex pattern(R"(^1[0-9]{10}$)");

if (regex_match(phone, pattern)) {
????cout << "手機號格式正確" << endl;
} else {
????cout << "格式錯誤" << endl;
}

R"( ... )"是原始字符串字面量,避免轉(zhuǎn)義字符問題。

部分匹配:regex_search

regex_search用于在字符串中查找是否存在符合正則的部分。

示例:從一段文本中找出郵箱地址

瑯瑯配音
瑯瑯配音

全能AI配音神器

瑯瑯配音89
查看詳情 瑯瑯配音
string text = "聯(lián)系我:admin@example.com 或 support@test.org";
regex email_pattern(R"(\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b)");
smatch match; // 用于保存匹配結(jié)果

while (regex_search(text, match, email_pattern)) {
????cout << "找到郵箱: " << match[0] << endl;
????text = match.suffix(); // 更新剩余文本繼續(xù)搜索
}

smatchstd::match_results<string::const_iterator>的別名,可提取匹配內(nèi)容。

提取子表達式

用括號()定義捕獲組,可在結(jié)果中提取特定部分。

示例:提取日期中的年月日

string date_str = "今天是2024-04-05";
regex date_regex(R"((\d{4})-(\d{2})-(\d{2}))");
smatch result;

if (regex_search(date_str, result, date_regex)) {
????cout << "年: " << result[1] << endl; // 第一個括號
????cout << "月: " << result[2] << endl;
????cout << "日: " << result[3] << endl;
}

字符串替換:regex_replace

regex_replace將匹配內(nèi)容替換成指定字符串。

示例:隱藏手機號中間四位

string input = "我的電話是13812345678";
regex phone_regex(R"(1[0-9]{3})([0-9]{4})([0-9]{4})");
string masked = regex_replace(input, phone_regex, "$1****$3");
cout << masked << endl; // 輸出:我的電話是138****5678

$1、$2表示對應(yīng)捕獲組的內(nèi)容。

基本上就這些。掌握regex_match、regex_searchregex_replacesmatch就能處理大多數(shù)文本匹配需求。注意正則表達式語法要寫對,建議測試時先用簡單例子驗證邏輯。不復(fù)雜但容易忽略細節(jié)。

以上就是c++++怎么使用正則表達式匹配字符串_c++ regex正則匹配用法的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!

c++速學(xué)教程(入門到精通)
c++速學(xué)教程(入門到精通)

c++怎么學(xué)習(xí)?c++怎么入門?c++在哪學(xué)?c++怎么學(xué)才快?不用擔(dān)心,這里為大家提供了c++速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn
最新問題
開源免費商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號