第四节 · 不可知的未来 · 随机数
<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