现在来说,支持C++11标准的C++语言均支持正则表达式。下面是简单的正则表达式示例,it定位到第一个位置,end_it是空迭代器,起到尾后迭代器的作用。同时,for循环中的it递增运算通过regex_search来推进迭代器,最终完成遍历任务。
#include <regex> #include <iostream> int main(void) { std::string data = "<Person><Item><ID>100001</ID><NAME>CHN</NMAE><AGE>5500</AGE></Item>" "<Item><ID>100002</ID><NAME>USA</NMAE><AGE>300</AGE></Item></Person>"; std::regex re("<Item><ID>(.*?)</ID><NAME>(.*?)</NMAE><AGE>(.*?)</AGE></Item>"); for (std::sregex_iterator it(data.begin(), data.end(), re), end_it; it != end_it; it++) { std::cout << it->str(1) << "\t" << it->str(2) << "\t" << it->str(3) << std::endl; } return 0; }