Aracılığıyla paylaş


basic_regex Sınıfı

Normal bir ifadeyi sarar.

Sözdizimi

template <class Elem, class RXtraits>
class basic_regex

Parametreler

Elem
Eşleşecek öğelerin türü.

RXtraits
Öğeler için nitelikler sınıfı.

Açıklamalar

Sınıf şablonu, normal ifadeyi tutan bir nesneyi açıklar. Bu sınıf şablonunun nesneleri regex_match, regex_search ve regex_replace şablon işlevlerine geçirilebilir. Ayrıca, normal ifadeyle eşleşen metni aramak için uygun metin dizesi bağımsız değişkenlerini geçirir. türündeki öğeler için regex ve türündeki charöğeler için wregex tür tanımları ile bu sınıf şablonunun wchar_tiki uzmanlığı vardır.

RXtraits şablon bağımsız değişkeni, sınıf şablonunun desteklediği normal ifadelerin söz diziminin çeşitli önemli özelliklerini açıklar. Bu normal ifade özelliklerini belirten bir sınıf, regex_traits Sınıfı türünde bir nesneyle aynı dış arabirime sahip olmalıdır.

Bazı işlevler, normal bir ifade tanımlayan bir bir işlenen dizisi alır. Böyle bir işleç sırasını birkaç şekilde belirtebilirsiniz:

ptr: sonlandırıcı öğenin değer value_type() olduğu ve işlenen dizisinin parçası olmadığı (null işaretçi olmaması gerekir) itibarıyla başlayan ptr null sonlandırılan bir dizi (örneğin, türü charElem için C dizesi)

ptr, count: öğesinden count başlayan ptr bir öğe dizisi (null işaretçi olmamalıdır)

str: nesnesi tarafından basic_string belirtilen sıra str

first, last: aralıktaki yineleyiciler first ve lastile sınırlandırılmış bir öğe dizisi [first, last)

rightbasic_regex: nesnesiright

Yukarıdaki üye işlevleri, RXtraits türü tarafından açıklanan seçeneklere ek olarak normal ifadenin yorumlanması için çeşitli seçenekleri belirten bir bağımsız değişken flags de alır.

Üyeler

Üye Varsayılan Değer
public static const flag_type icase regex_constants::icase
ortak statik sabit flag_type aboneler regex_constants::nosubs
genel statik sabit flag_type iyileştirme regex_constants::optimize
ortak statik const flag_type harmanlama regex_constants::collate
ecmascript flag_type genel statik sabit regex_constants::ECMAScript
genel statik sabit flag_type temel regex_constants::basic
genel statik sabit flag_type genişletilmiş regex_constants::extended
genel statik sabit flag_type awk regex_constants::awk
genel statik sabit flag_type grep regex_constants::grep
genel statik const flag_type egrep regex_constants::egrep
özel RXtraits özellikleri

Oluşturucular

Oluşturucu Açıklama
basic_regex Normal ifade nesnesini oluşturma.

Tür tanımları

Tür adı Açıklama
flag_type Söz dizimi seçeneği bayraklarının türü.
locale_type Depolanan yerel ayar nesnesinin türü.
value_type Öğe türü.

Üye işlevleri

Üye işlevi Açıklama
atamak Normal ifade nesnesine bir değer atar.
Bayrak Söz dizimi seçenek bayraklarını döndürür.
getloc Depolanan yerel ayar nesnesini döndürür.
imbue Depolanan yerel ayar nesnesini değiştirir.
mark_count Eşleşen alt ifade sayısını döndürür.
değiş tokuş etmek İki normal ifade nesnesini değiştirir.

İşleçler

Operator Açıklama
operator= Normal ifade nesnesine bir değer atar.

Gereksinimler

Üst bilgi:<regex>

Ad alanı: std

Örnek

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

using namespace std;

int main()
{
    regex::value_type elem = 'x';
    regex::flag_type flag = regex::grep;

    elem = elem;  // to quiet "unused" warnings
    flag = flag;

    // constructors
    regex rx0;
    cout << "match(\"abc\", \"\") == " << boolalpha
        << regex_match("abc", rx0) << endl;

    regex rx1("abcd", regex::ECMAScript);
    cout << "match(\"abc\", \"abcd\") == " << boolalpha
        << regex_match("abc", rx1) << endl;

    regex rx2("abcd", 3);
    cout << "match(\"abc\", \"abc\") == " << boolalpha
        << regex_match("abc", rx2) << endl;

    regex rx3(rx2);
    cout << "match(\"abc\", \"abc\") == " << boolalpha
        << regex_match("abc", rx3) << endl;

    string str("abcd");
    regex rx4(str);
    cout << "match(string(\"abcd\"), \"abc\") == " << boolalpha
        << regex_match("abc", rx4) << endl;

    regex rx5(str.begin(), str.end() - 1);
    cout << "match(string(\"abc\"), \"abc\") == " << boolalpha
        << regex_match("abc", rx5) << endl;
    cout << endl;

    // assignments
    rx0 = "abc";
    rx0 = rx1;
    rx0 = str;

    rx0.assign("abcd", regex::ECMAScript);
    rx0.assign("abcd", 3);
    rx0.assign(rx1);
    rx0.assign(str);
    rx0.assign(str.begin(), str.end() - 1);

    rx0.swap(rx1);

    // mark_count
    cout << "\"abc\" mark_count == "
        << regex("abc").mark_count() << endl;
    cout << "\"(abc)\" mark_count == "
        << regex("(abc)").mark_count() << endl;

    // locales
    regex::locale_type loc = rx0.imbue(locale());
    cout << "getloc == imbued == " << boolalpha
        << (loc == rx0.getloc()) << endl;

    // initializer_list
    regex rx6({ 'a', 'b', 'c' }, regex::ECMAScript);
    cout << "match(\"abc\") == " << boolalpha
        << regex_match("abc", rx6);
    cout << endl;
}
match("abc", "") == false
match("abc", "abcd") == false
match("abc", "abc") == true
match("abc", "abc") == true
match(string("abcd"), "abc") == false
match(string("abc"), "abc") == true

"abc" mark_count == 0
"(abc)" mark_count == 1
getloc == imbued == true
match("abc") == true

basic_regex::assign

Normal ifade nesnesine bir değer atar.

basic_regex& assign(
    const basic_regex& right);

basic_regex& assign(
    const Elem* ptr,
    flag_type flags = ECMAScript);

basic_regex& assign(
    const Elem* ptr,
    size_type len,
    flag_type flags = ECMAScript);

basic_regex& assign(
    initializer_list<_Elem> IList,
    flag_type flags = regex_constants::ECMAScript);

template <class STtraits, class STalloc>
basic_regex& assign(
    const basic_string<Elem, STtraits, STalloc>& str,
    flag_type flags = ECMAScript);

template <class InIt>
basic_regex& assign(
    InIt first, InIt last,
    flag_type flags = ECMAScript);

Parametreler

STtraits
Dize kaynağı için traits sınıfı.

STalloc
Dize kaynağı için ayırıcı sınıfı.

Init
Aralık kaynağı için giriş yineleyici türü.

Sağ
Kopyalanacak regex kaynağı.

ptr
Kopyalanacak sıranın başlangıcına işaret eden işaretçi.

Bayrak
Kopyalama sırasında eklenecek söz dizimi seçeneği bayrakları.

len/TD>
Kopyalanacak sıranın uzunluğu.

str
Kopyalanacak dize.

birinci
Kopyalanacak sıranın başlangıcı.

son
Kopyalanacak sıra sonu.

IList
Kopyalanacak initializer_list.

Açıklamalar

Üye işlevlerinin her biri tarafından *this tutulan normal ifadeyi işlenen dizisi tarafından açıklanan normal ifadeyle değiştirir ve döndürür *this.

basic_regex::basic_regex

Normal ifade nesnesini oluşturma.

basic_regex();

explicit basic_regex(
    const Elem* ptr,
    flag_type flags);

explicit basic_regex(
    const Elem* ptr,
    size_type len,
    flag_type flags);

basic_regex(
    const basic_regex& right);

basic_regex(
    initializer_list<Type> IList,
    flag_type flags);

template <class STtraits, class STalloc>
explicit basic_regex(
    const basic_string<Elem, STtraits, STalloc>& str,
    flag_type flags);

template <class InIt>
explicit basic_regex(
    InIt first,
    InIt last,
    flag_type flags);

Parametreler

STtraits
Dize kaynağı için traits sınıfı.

STalloc
Dize kaynağı için ayırıcı sınıfı.

Init
Aralık kaynağı için giriş yineleyici türü.

Sağ
Kopyalanacak regex kaynağı.

ptr
Kopyalanacak sıranın başlangıcına işaret eden işaretçi.

Bayrak
Kopyalama sırasında eklenecek söz dizimi seçeneği bayrakları.

len/TD>
Kopyalanacak sıranın uzunluğu.

str
Kopyalanacak dize.

birinci
Kopyalanacak sıranın başlangıcı.

son
Kopyalanacak sıra sonu.

IList
Kopyalanacak initializer_list.

Açıklamalar

Tüm oluşturucular türündeki RXtraitsvarsayılan olarak inşa edilmiş bir nesneyi depolar.

İlk oluşturucu boş basic_regex bir nesne oluşturur. Diğer oluşturucular, işlenen dizisi tarafından açıklanan normal ifadeyi tutan bir basic_regex nesne oluşturur.

Boş basic_regex bir nesne regex_match, regex_search veya regex_replace geçirildiğinde herhangi bir karakter dizisiyle eşleşmiyor.

basic_regex::flag_type

Söz dizimi seçeneği bayraklarının türü.

typedef regex_constants::syntax_option_type flag_type;

Açıklamalar

Tür, regex_constants::syntax_option_type için bir eş anlamlıdır.

basic_regex::flags

Söz dizimi seçenek bayraklarını döndürür.

flag_type flags() const;

Açıklamalar

Üye işlevi, basic_regex::assign üye işlevlerinden birine yapılan en son çağrıya geçirilen bağımsız değişkenin değerini flag_type veya böyle bir çağrı yapılmadıysa oluşturucuya geçirilen değeri döndürür.

basic_regex::getloc

Depolanan yerel ayar nesnesini döndürür.

locale_type getloc() const;

Açıklamalar

Üye işlevi regex_traits::getloc() döndürürtraits..

basic_regex::imbue

Depolanan yerel ayar nesnesini değiştirir.

locale_type imbue(locale_type loc);

Parametreler

loc
Depolanabilir yerel ayar nesnesi.

Açıklamalar

Üye işlevi boşaltıp *this regex_traits::imbue(loc) döndürürtraits..

basic_regex::locale_type

Depolanan yerel ayar nesnesinin türü.

typedef typename RXtraits::locale_type locale_type;

Açıklamalar

Tür, regex_traits::locale_type için bir eş anlamlıdır.

basic_regex::mark_count

Eşleşen alt ifade sayısını döndürür.

unsigned mark_count() const;

Açıklamalar

Üye işlevi, normal ifadedeki yakalama gruplarının sayısını döndürür.

basic_regex::operator=

Normal ifade nesnesine bir değer atar.

basic_regex& operator=(const basic_regex& right);

basic_regex& operator=(const Elem *str);

template <class STtraits, class STalloc>
basic_regex& operator=(const basic_string<Elem, STtraits, STalloc>& str);

Parametreler

STtraits
Dize kaynağı için traits sınıfı.

STalloc
Dize kaynağı için ayırıcı sınıfı.

Sağ
Kopyalanacak regex kaynağı.

str
Kopyalanacak dize.

Açıklamalar

İşleçlerin her biri tarafından *this tutulan normal ifadeyi işlenen dizisi tarafından açıklanan normal ifadeyle değiştirir ve döndürür *this.

basic_regex::swap

İki normal ifade nesnesini değiştirir.

void swap(basic_regex& right) throw();

Parametreler

Sağ
Değiştirecek normal ifade nesnesi.

Açıklamalar

Üye işlevi normal ifadeleri ile sağ arasında *this değiştirir. Bunu sürekli olarak yapar ve hiçbir özel durum oluşturmaz.

basic_regex::value_type

Öğe türü.

typedef Elem value_type;

Açıklamalar

Tür, Elem şablon parametresinin eş anlamlısıdır.

Ayrıca bkz.

<regex>
regex_match
regex_search
regex_replace
regex
wregex
regex_traits Sınıfı