std::regex_iterator

来自cppreference.com
< cpp‎ | regex

 
 
正则表达式库
原文:
Classes
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
basic_regex(C++11)
sub_match(C++11)
match_results(C++11)
算法
原文:
Algorithms
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
regex_match(C++11)
regex_search(C++11)
regex_replace(C++11)
迭代器
原文:
Iterators
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
regex_iterator(C++11)
regex_token_iterator(C++11)
例外
原文:
Exceptions
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
regex_error(C++11)
性状
原文:
Traits
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
regex_traits(C++11)
常量
原文:
Constants
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
syntax_option_type(C++11)
match_flag_type(C++11)
error_type(C++11)
 
template<

    class BidirIt,
    class CharT = typename std::iterator_traits<BidirIt>::value_type,
    class Traits = std::regex_traits<CharT>

> class regex_iterator
(C++11 起)
std::regex_iterator是一个只读ForwardIterator访问个人的正则表达式匹配的的底层字符序列内.
原文:
std::regex_iterator is a read-only ForwardIterator that accesses the individual matches of a regular expression within the underlying character sequence.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
建设,并在每一个增量,它会调用std::regex_search和记忆的结果(即,节省了拷贝的价值std::match_results<BidirIt>)。该迭代器时建造或完成的第一个间接引用,可以读出的第一个对象。否则,只提领返回最近获得的正则表达式匹配的副本.
原文:
On construction, and on every increment, it calls std::regex_search and remembers the result (that is, saves a copy of the value std::match_results<BidirIt>). The first object may be read when the iterator is constructed or when the first dereferencing is done. Otherwise, dereferencing only returns a copy of the most recently obtained regex match.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
默认构造std::regex_iterator是最终的序列迭代器。当一个有效的std::regex_iterator递增到达最后一个如同(std::regex_search回报false)后,它变得等于序列结束迭代器。提领或递增的进一步调用未定义的行为.
原文:
The default-constructed std::regex_iterator is the end-of-sequence iterator. When a valid std::regex_iterator is incremented after reaching the last match (std::regex_search returns false), it becomes equal to the end-of-sequence iterator. Dereferencing or incrementing it further invokes undefined behavior.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
一个典型的实施std::regex_iterator持有的开始和结束迭代器基础序列(两个实例BidirIt),正则表达式(const regex_type*)和匹配标志(std::regex_constants::match_flag_type)的指针,和的电流匹配(std::match_results<BidirIt>).
原文:
A typical implementation of std::regex_iterator holds the begin and the end iterators for the underlying sequence (two instances of BidirIt), a pointer to the regular expression (const regex_type*) and the match flags (std::regex_constants::match_flag_type), and the current match (std::match_results<BidirIt>).
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

目录

[编辑] 类型要求

-
BidirIt 必须满足 BidirectionalIterator 的要求。

[编辑] 专业化

常见的字符序列类型的几个专业的定义
原文:
Several specializations for common character sequence types are defined:
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
在头文件 <regex> 中定义
类型
原文:
Type
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
Definition
cregex_iterator regex_iterator<const char*>
wcregex_iterator regex_iterator<const wchar_t*>
sregex_iterator regex_iterator<std::string::const_iterator>
wsregex_iterator regex_iterator<std::wstring::const_iterator>

[编辑] 会员类型

会员类型
原文:
Member type
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
Definition
value_type std::match_results<BidirIt>
difference_type std::ptrdiff_t
pointer const value_type*
reference const value_type&
iterator_category std::forward_iterator_tag
regex_type basic_regex<CharT, Traits>

[编辑] 成员函数

构造一个新的regex_iterator
原文:
constructs a new regex_iterator
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数)
(destructor)
(隐式声明)
destructs a regex_iterator, including the cached value
(公共成员函数)
代替一个regex_iterator
原文:
replaces a regex_iterator
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数)
比较2 regex_iterators
原文:
compares two regex_iterators
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数)
获得的电流的参考match
accesses当前匹配的成员
原文:
obtains a reference to the current match
accesses a member of the current match
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数)
regex_iterator前进到下一个匹配
原文:
advances the regex_iterator to the next match
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数)

[编辑] 注释

这是程序员的责任,以确保std::basic_regex对象传递给迭代器的构造函数会超越的迭代器。因为迭代器存储的指针递增迭代器被破坏后的正则表达式正则表达式,访问一个悬摆指针.
原文:
It is the programmer's responsibility to ensure that the std::basic_regex object passed to the iterator's constructor outlives the iterator. Because the iterator stores a pointer to the regex, incrementing the iterator after the regex was destroyed accesses a dangling pointer.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
如果匹配正则表达式的一部分,只是一个断言(^$\b\B),存储在比赛中的迭代器是一个零长度的匹配,也就是说,match[0].first == match[0].second
原文:
If the part of the regular expression that matched is just an assertion (^, $, \b, \B), the match stored in the iterator is a zero-length match, that is, match[0].first == match[0].second.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 为例

#include <regex>
#include <iterator>
#include <iostream>
 
int main()
{
    const std::string text = "Quick brown fox.";
 
    std::regex re("[^\\s]+");
    auto beg = std::sregex_iterator(text.begin(), text.end(), re);
    auto end = std::sregex_iterator();
 
    std::cout << "The number of words is " << std::distance(beg, end) << '\n';
}

输出:

The number of words is 3

[编辑] 另请参阅

(C++11)
确定一个正则表达式匹配,包括所有的子表达式匹配
原文:
identifies one regular expression match, including all sub-expression matches
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板) [edit]
(C++11)
检查正则表达式在字符串中的任何地方发生
原文:
check if a regular expression occurs anywhere within a string
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板)