cpp正则表达式判断是否是ip地址
时间: 2024-11-09 09:20:00 浏览: 18
cpp-SLRECC超轻的正则表达式Regexp引擎
在C++中,你可以使用标准库中的`std::regex`来处理正则表达式,判断一个字符串是否符合IP地址的格式。IP地址通常有三种形式:IPv4、IPv6和一些特殊的短格式如"localhost"等。以下是一个基本的例子,用于检查IPv4地址:
```cpp
#include <regex>
#include <string>
bool is_valid_ipv4(const std::string& ip) {
std::regex ipv4_regex(R"((^([0-9]{1,3}\.){3}[0-9]{1,3}$)|^(127\.0\.0\.1)$)");
return std::regex_match(ip, ipv4_regex);
}
int main() {
std::string test_ips[] = {"192.168.1.1", "255.255.255.255", "not_an_ip"};
for (const auto& ip : test_ips) {
if (is_valid_ipv4(ip)) {
std::cout << ip << " is a valid IPv4 address.\n";
} else {
std::cout << ip << " is not a valid IPv4 address.\n";
}
}
return 0;
}
```
这个函数会检查输入的字符串是否匹配IPv4正则表达式。注意这只是一个简单的示例,实际应用中可能需要更复杂的验证,比如处理范围(1-255)和端口。
阅读全文