设为首页 加入收藏

TOP

C++ boost 正则表达式用法(四)
2011-12-29 14:45:18 】 浏览:4025
Tags:boost 正则 表达式 用法
 

 

还有就是一大堆的比较操作符的重载了,这里就不多说了。
 
l       match_results
match_results相当于sub_match的容器,用于表示正则式算法的返回结果。


template <class BidirectionalIterator,

          class Allocator = allocator<sub_match<BidirectionalIterator> >

class match_results;

 

typedef match_results<const char*> cmatch;

typedef match_results<const wchar_t*> wcmatch;

typedef match_results<string::const_iterator> smatch;

typedef match_results<wstring::const_iterator> wsmatch;

声明很简单,有四个特化可以直接使用,不过要注意string和char*字符串使用的match_results是不同的。
成员函数:
m.size()
 容量。
 
m.max_size()
 最大容量。
 
m.empty()
 容量是否为0。
 
m[n]
 第n个元素,即sub_match
 
m.prefix()
 返回代表前缀的sub_match,前缀指字符串的开头到第一个匹配的开头。
 
m.suffix()
 返回代表后缀的sub_match,后缀之最后一个匹配的结尾到字符串的结尾。
 
m.length(n)
 返回第n个元素的长度,即m[n].size()。
 
m.position(n)
 返回第n个元素的位置。
 
cout<<m
 流输出,输出整个匹配,相当于cout<<m[0]。因为第0个元素是整个匹配,详细情况请看下面的解释。
 
m.format(fmtstr)
 使用格式化字符串,格式化结果,返回字符串
 
m.format(fmtstr,flags)
 使用格式化字符串,格式化结果,返回字符串,flags是格式化选项。
 
m.format(out,fmtstr)
 同上,但是使用输出迭代器输出结果。
 
m.format(out.fmtstr,flags)
 同上,但是使用输出迭代器输出结果。
 


迭代器:
smatch::iterator
 迭代器,常迭代器
 
smatch::const_iterator
 同上
 
m.begin()
 返回常迭代器
 
m.end()
 同上
 
 

最后,说一个实例

我处理一个文本

            实际值/-20.031,-1.896,-2.861,-1,0,0

提取其中的数字

regex exp("\s*实际值/(- [0-9.]+),(- [0-9.]+),(- [0-9.]+),(- [0-9.]+),(- [0-9.]+),(- [0-9.]+)$");

大家看看还有没有更好的写法?


首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C/C++正则表达式应用 下一篇深入浅出C/C++中的正则表达式库(..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目