第四节 · 不可知的未来 · 随机数

<regex> 库提供了强大的正则表达式支持,用于字符串的模式匹配和处理。


基本匹配

#include <regex>

int main()
{
    string text = "Hello, World!";
    regex pattern("World");
    
    // 搜索
    if (regex_search(text, pattern))
    {
        cout << "Found!" << endl;
    }
    
    // 完全匹配
    if (regex_match(text, regex("Hello.*")))
    {
        cout << "Full match!" << endl;
    }
    
    return 0;
}

正则表达式语法

元字符
含义

.

任意单个字符

*

前面的元素重复 0 次或多次

+

前面的元素重复 1 次或多次

?

前面的元素重复 0 次或 1 次

^

字符串开头

$

字符串结尾

[]

字符类

\d

数字

\w

单词字符(字母、数字、下划线)

\s

空白字符


捕获组


查找所有匹配


替换


正则表达式选项


实际应用:验证


分割字符串


提取信息


性能注意事项


习题

  • 实现一个 URL 解析器,提取协议、域名、路径等部分。

  • 编写正则表达式匹配有效的 IPv6 地址。

  • 实现一个简单的词法分析器,识别数字、标识符和运算符。

Last updated