C++正则表达式
时间: 2023-06-29 18:18:02 浏览: 111
正则表达式匹配工具——主流的开发语言(C#、Java、C++、VB、Ruby以及Python等)
C++11及以上版本支持正则表达式。使用正则表达式需要包含头文件 `<regex>`。
下面是一个简单的例子,匹配一个字符串是否为合法的电子邮件地址:
```cpp
#include <iostream>
#include <regex>
int main()
{
std::string email = "example@example.com";
std::regex pattern("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}");
if (std::regex_match(email, pattern))
{
std::cout << "Valid email address\n";
}
else
{
std::cout << "Invalid email address\n";
}
return 0;
}
```
正则表达式 `[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}` 匹配一个合法的电子邮件地址。其中:
- `[a-zA-Z0-9._%+-]+` 匹配用户名部分,包含字母、数字、点、下划线、百分号、加号和减号,且至少出现一次。
- `@[a-zA-Z0-9.-]+` 匹配 @ 符号和邮件服务器部分,包含字母、数字、点和减号,且至少出现一次。
- `\\.` 匹配点号。
- `[a-zA-Z]{2,}` 匹配顶级域名,包含字母,且至少出现两个。
如果要匹配更复杂的正则表达式,可以使用正则表达式引擎提供的更多功能,比如捕获分组、非捕获分组、零宽断言等等。具体可以参考 C++ 标准库文档中的正则表达式部分。
阅读全文