子表达式(subexpressions)的 数据验证(data validation), 可以通过括号"()"分解正则表达式的子表达式;
然后使用下标标示符[], 输出相应的子表达式, "0"代表全体, "1"代表第一个括号, 依次递加;
通过对于问号项?是否匹配, 验证正则表达式的匹配式;
代码:
#include <iostream> #include <string> #include <boost/regex.hpp> using namespace std; using namespace boost; bool valid(const boost::smatch& m) { if(m[1].matched) return m[3].matched && (m[4].matched == 0 || m[4].str() == " "); else return !m[3].matched && m[4].str() == m[6].str(); } int main() { //问号(?)表示之前的可以选择 std::string phone = "(\\()?(\\d{3})(\\))?([-. ])?(\\d{3})([-. ]?)(\\d{4})"; boost::regex r(phone); boost::smatch m; std::string s("(432)312-3425 9424151424 15"); for(boost::sregex_iterator it(s.begin(), s.end(), r), end_it; it != end_it; ++it) { if(valid(*it)) std::cout << "valid : " << it->str() << std::endl; else std::cout << "not valid : " << it->str() << std::endl; } }
输出:
valid : (432)312-3425 valid : 9424151424
作者:csdn博客 Spike_King
更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/cplus/
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索正则表达式
, 验证
, include
, boost
, it c++
, 表达式
, 括号
, boost for wp8
, c++正则表达式
, 正则表达式问号
问号表达式
python正则表达式sub、正则表达式 sub、js正则表达式验证、邮箱验证正则表达式、验证邮箱的正则表达式,以便于您获取更多的相关知识。