C++11 正则的一些基本语法参考
http://blog.youkuaiyun.com/berguiliu/article/details/25831925
- C++11标准 STL正则表达式 验证电子邮件地址
http://www.cnblogs.com/yejianfei/archive/2012/10/07/2713715.html
- C++11 正则验证 IPv4, IPv6
ipv4的
http://blog.youkuaiyun.com/u012806692/article/details/50635590
leetcode 468 Validate IP Address
题目地址:
https://leetcode.com/problems/validate-ip-address/#/description
ac代码:
class Solution {
public:
bool isIPv4(string IP)
{
string s = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.";
s += "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.";
s += "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.";
s += "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";
regex pattern(s);
std::match_results<std::string::const_iterator> result;
bool valid = regex_match(IP, result, pattern);
if(valid&&(result.length()>0))
{
/*for(int i =0;i<result.length();i++)
{
cout<<result[i]<<endl;
}*/
return true;
}
return valid;
}
bool isIPv6(string IP)
{
string s = "^([0-9a-fA-F]{1,4})";
s += "(:[0-9a-fA-F]{1,4})";
s += "(:[0-9a-fA-F]{1,4})";
s += "(:[0-9a-fA-F]{1,4})";
s += "(:[0-9a-fA-F]{1,4})";
s += "(:[0-9a-fA-F]{1,4})";
s += "(:[0-9a-fA-F]{1,4})";
s += "(:[0-9a-fA-F]{1,4})";
regex pattern(s);
std::match_results<std::string::const_iterator> result;
bool valid = regex_match(IP, result, pattern);
if(valid&&(result.length()>0))
{
/*for(int i =0;i<result.length();i++)
{
cout<<result[i]<<endl;
}*/
return true;
}
return valid;
}
string validIPAddress(string IP) {
if(isIPv4(IP))
return "IPv4";
if(isIPv6(IP))
return "IPv6";
return "Neither";
}
};