91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c++ string匹配如何支持正則表達式

c++
小樊
88
2024-09-25 07:35:14
欄目: 編程語言

C++的<regex>庫支持正則表達式。你可以使用std::regex類來創建一個正則表達式對象,然后使用它的成員函數來執行匹配操作。

下面是一個簡單的示例,演示如何使用C++的<regex>庫進行正則表達式匹配:

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

int main() {
    std::string str = "Hello, my email is example@example.com and my phone number is 123-456-7890";
    
    // 創建一個正則表達式對象,匹配郵箱地址
    std::regex email_regex(R"(\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b)");
    
    // 在字符串中查找所有匹配的郵箱地址
    std::smatch matches;
    std::string::const_iterator searchStart(str.cbegin());
    while (std::regex_search(searchStart, str.cend(), matches, email_regex)) {
        std::cout << "Found email: " << matches[0] << std::endl;
        searchStart = matches.suffix().first;
    }
    
    // 創建一個正則表達式對象,匹配電話號碼
    std::regex phone_regex(R"(\d{3}-\d{3}-\d{4})");
    
    // 在字符串中查找所有匹配的電話號碼
    searchStart = str.cbegin();
    while (std::regex_search(searchStart, str.cend(), matches, phone_regex)) {
        std::cout << "Found phone number: " << matches[0] << std::endl;
        searchStart = matches.suffix().first;
    }
    
    return 0;
}

在上面的示例中,我們創建了兩個正則表達式對象:email_regex用于匹配郵箱地址,phone_regex用于匹配電話號碼。然后,我們使用std::regex_search函數在字符串str中查找所有匹配的郵箱地址和電話號碼,并將它們打印出來。

注意,正則表達式中的特殊字符需要進行轉義。例如,在上面的示例中,我們在正則表達式中使用了\b來表示單詞邊界,使用了\.來表示點字符。這是因為這些字符在正則表達式中具有特殊的含義。

0
浏阳市| 沭阳县| 土默特右旗| 东乡族自治县| 中江县| 保靖县| 肇源县| 安平县| 南岸区| 宁海县| 永川市| 通道| 漳平市| 泸州市| 屯门区| 黑山县| 沛县| 莱阳市| 曲阜市| 武威市| 长白| 旬阳县| 同心县| 黎城县| 家居| 屯昌县| 大理市| 开江县| 铜鼓县| 丰城市| 图木舒克市| 古浪县| 鹰潭市| 双江| 贵港市| 青浦区| 榆中县| 醴陵市| 彰化县| 临朐县| 永靖县|