C++ 正则表达式,希望表达出xxx.xxx.xxx.xxx这样的ip格式,如何实现
时间: 2023-09-10 18:15:00 浏览: 81
使用C++标准库中的正则表达式库regex,可以实现匹配IP地址的正则表达式:
```c++
#include <iostream>
#include <regex>
int main() {
std::string ip = "192.168.1.1";
std::regex regex_ip("^((\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5])$");
if (std::regex_match(ip, regex_ip)) {
std::cout << "IP address is valid!" << std::endl;
} else {
std::cout << "IP address is invalid!" << std::endl;
}
return 0;
}
```
该正则表达式的含义是:
- `^`:表示字符串开头。
- `(`:表示分组,方便后面的重复出现。
- `\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5]`:表示匹配0-255之间的数字,可以是一位或两位数。这里使用了4个子表达式,分别匹配0-99、100-199、200-249和250-255。
- `\\.`:表示匹配点号。
- `){3}`:表示上述模式重复3次。
- `(\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5])`:表示匹配最后一段IP地址。
- `$`:表示字符串结尾。
因此,该正则表达式可以匹配IPv4地址的格式,如192.168.1.1。
阅读全文