Kelas regex_iterator

Kelas iterator untuk kecocokan.

Sintaks

template<class BidIt,
   class Elem = typename std::iterator_traits<BidIt>::value_type,
   class RxTraits = regex_traits<Elem> >
class regex_iterator

Parameter

BidIt
Jenis iterator untuk submatche.

Elem
Jenis elemen yang cocok.

RXtraits
Kelas sifat untuk elemen.

Keterangan

Templat kelas menjelaskan objek iterator penerusan konstan. Ini mengekstrak objek jenis match_results<BidIt> dengan berulang kali menerapkan objek *pregex ekspresi regulernya ke urutan karakter yang ditentukan oleh rentang [begin, end)iterator .

Konstruktor

Konstruktor Deskripsi
regex_iterator Membangun iterator.

Typedefs

Nama jenis Deskripsi
difference_type Jenis perbedaan iterator.
iterator_category Jenis kategori iterator.
Pointer Jenis penunjuk ke kecocokan.
referensi Jenis referensi ke kecocokan.
regex_type Jenis ekspresi reguler yang cocok.
value_type Jenis kecocokan.

Operator

Operator Deskripsi
operator!= Membandingkan iterator untuk ketidaksamaan.
Operator* Mengakses kecocokan yang ditunjuk.
operator++ Menaikkan iterator.
operator= Membandingkan iterator untuk kesetaraan.
Operator-> Mengakses kecocokan yang ditunjuk.

Persyaratan

Header:<regex>

Namespace: std

Contoh

Lihat artikel berikut ini untuk contoh tentang ekspresi reguler:

// std__regex__regex_iterator.cpp
// compile with: /EHsc
#include <regex>
#include <iostream>

typedef std::regex_iterator<const char *> Myiter;
int main()
    {
    const char *pat = "axayaz";
    Myiter::regex_type rx("a");
    Myiter next(pat, pat + strlen(pat), rx);
    Myiter end;

    for (; next != end; ++next)
        std::cout << "match == " << next->str() << std::endl;

// other members
    Myiter it1(pat, pat + strlen(pat), rx);
    Myiter it2(it1);
    next = it1;

    Myiter::iterator_category cat = std::forward_iterator_tag();
    Myiter::difference_type dif = -3;
    Myiter::value_type mr = *it1;
    Myiter::reference ref = mr;
    Myiter::pointer ptr = &ref;

    dif = dif; // to quiet "unused" warnings
    ptr = ptr;

    return (0);
    }
match == a
match == a
match == a

regex_iterator::d ifference_type

Jenis perbedaan iterator.

typedef std::ptrdiff_t difference_type;

Keterangan

Jenisnya adalah sinonim untuk std::ptrdiff_t.

regex_iterator::iterator_category

Jenis kategori iterator.

typedef std::forward_iterator_tag iterator_category;

Keterangan

Jenisnya adalah sinonim untuk std::forward_iterator_tag.

regex_iterator::operator!=

Membandingkan iterator untuk ketidaksamaan.

bool operator!=(const regex_iterator& right);

Parameter

right
Iterator untuk dibandingkan.

Keterangan

Fungsi anggota mengembalikan !(*this == right).

regex_iterator::operator*

Mengakses kecocokan yang ditunjuk.

const match_results<BidIt>& operator*();

Keterangan

Fungsi anggota mengembalikan nilai matchtersimpan .

regex_iterator::operator++

Menaikkan iterator.

regex_iterator& operator++();
regex_iterator& operator++(int);

Keterangan

Jika kecocokan saat ini tidak memiliki karakter, operator pertama memanggil regex_search(begin, end, match, *pregex, flags | regex_constants::match_prev_avail | regex_constants::match_not_null); jika tidak, maka akan memajukan nilai begin tersimpan untuk mengarahkan ke karakter pertama setelah kecocokan saat ini, maka memanggil regex_search(begin, end, match, *pregex, flags | regex_constants::match_prev_avail). Dalam kedua kasus, jika pencarian gagal operator mengatur objek ke iterator akhir urutan. Operator mengembalikan objek.

Operator kedua membuat salinan objek, menaikkan objek, lalu mengembalikan salinan.

regex_iterator::operator=

Membandingkan iterator untuk kesetaraan.

bool operator==(const regex_iterator& right);

Parameter

right
Iterator untuk dibandingkan.

Keterangan

Fungsi anggota mengembalikan true jika dan kanan adalah iterator akhir urutan atau jika keduanya tidak merupakan iterator akhir urutan dan begin == right.begin, end == right.end, pregex == right.pregex, dan flags == right.flags. *this Jika tidak, ia mengembalikan false.

regex_iterator::operator->

Mengakses kecocokan yang ditunjuk.

const match_results<BidIt> * operator->();

Keterangan

Fungsi anggota mengembalikan alamat nilai matchtersimpan .

regex_iterator::p ointer

Jenis penunjuk ke kecocokan.

typedef match_results<BidIt> *pointer;

Keterangan

Jenisnya adalah sinonim untuk match_results<BidIt>*, di mana BidIt adalah parameter templat.

regex_iterator::reference

Jenis referensi ke kecocokan.

typedef match_results<BidIt>& reference;

Keterangan

Jenisnya adalah sinonim untuk match_results<BidIt>&, di mana BidIt adalah parameter templat.

regex_iterator::regex_iterator

Membangun iterator.

regex_iterator();

regex_iterator(BidIt first,
    BidIt last,
    const regex_type& re,
    regex_constants::match_flag_type f = regex_constants::match_default);

Parameter

first
Awal urutan yang cocok.

last
Akhir urutan untuk dicocokkan.

kembali
Ekspresi reguler untuk kecocokan.

f
Bendera untuk kecocokan.

Keterangan

Konstruktor pertama membangun iterator akhir urutan. Konstruktor kedua menginisialisasi nilai tersimpan dengan yang pertama, nilai end tersimpan dengan nilai terakhir, nilai pregex tersimpan dengan &re, dan nilai flags tersimpan dengan f.begin Kemudian memanggil regex_search(begin, end, match, *pregex, flags). Jika pencarian gagal, konstruktor mengatur objek ke iterator akhir urutan.

regex_iterator::regex_type

Jenis ekspresi reguler yang cocok.

typedef basic_regex<Elem, RXtraits> regex_type;

Keterangan

Typedef adalah sinonim untuk basic_regex<Elem, RXtraits>.

regex_iterator::value_type

Jenis kecocokan.

typedef match_results<BidIt> value_type;

Keterangan

Jenisnya adalah sinonim untuk match_results<BidIt>, di mana BidIt adalah parameter templat.

Lihat juga

<regex>
Kelas regex_constants
Kelas regex_error
<fungsi regex>
Kelas regex_iterator
<operator regex>
Kelas regex_token_iterator
Kelas regex_traits
<typedef regex>