C++ ip地址正则校验
时间: 2023-11-14 08:20:06 浏览: 53
可以使用正则表达式对 IP 地址进行校验。以下是一个示例代码:
```c++
#include <regex>
#include <iostream>
#include <string>
bool validateIP(const std::string& ip)
{
std::regex pattern("^\\d{1,3}(\\.\\d{1,3}){3}$");
return std::regex_match(ip, pattern);
}
int main()
{
std::string ip = "192.168.1.1";
if (validateIP(ip))
{
std::cout << "The IP address is valid." << std::endl;
}
else
{
std::cout << "The IP address is invalid." << std::endl;
}
return 0;
}
```
这里使用了一个正则表达式 `^\d{1,3}(\.\d{1,3}){3}$`,它的含义是:
- `^` 表示字符串的开头
- `\d{1,3}` 表示 1 到 3 个数字,用于匹配 IP 地址中的每一段数字
- `(\.\d{1,3}){3}` 表示匹配 3 个点号和它们之间的 3 个数字段,其中点号需要转义为 `\.`,每个数字段需要用括号括起来,并且需要匹配 1 到 3 个数字
- `$` 表示字符串的结尾
因此,这个正则表达式可以匹配符合 IPv4 地址格式的字符串。如果字符串符合要求,则返回 true,否则返回 false。