Giriş
Şu satırı dahil ederiz.
1. Match Result Dönmeyen Metodlar
Bunlar en kolay metodlar. Sadece Çağrı sonucunun true veya false olması bizi ilgilendirir.
1.1 regex_search - iterator
Metodun imzası şöyle
İlk parametre üzerinde dolaşılacak string, ikinci parametre ise aranılacak örüntüdür. Şöyle yaparız.
Yanlış kullanımı şöyledir. Bu örnek derlenmez çünkü ikinci parametre std::regex yerine yanlışlıkla std::string olarak kullanılmaya çalışılıyor.
2. Match Result Dönen Metodlar
regex_search - string + smatch + regex
Örnek
std::string ile kullanımı şöyledir.
Şöyle yaparız.
regex_search - iterator + iterator + smatch + regex
Örnek
iterator ile kullanımı şöyledir.
Şu satırı dahil ederiz.
include <regex>
C++11 ile gelen bu sınıflar çok faydalı. Eskiden GNU ile gelen C tarzı metodları kullanır ve şu satırı dahil ederdik.#include <regex.h>
String'in bir kısmının verilen regex'e uyup uymadığını true veya false olarak döner. regex_search metodları iki gruba ayrılabilir.
1. Match Result Dönmeyen Metodlar
Bunlar en kolay metodlar. Sadece Çağrı sonucunun true veya false olması bizi ilgilendirir.
1.1 regex_search - iterator
Metodun imzası şöyle
template <class BidirectionalIterator, class charT, class traits>
bool regex_search(BidirectionalIterator first, BidirectionalIterator last,
const basic_regex<charT, traits> & e,
regex_constants::match_flag_type flags =
regex_constants::match_default);
1.2 regex_search - stringİlk parametre üzerinde dolaşılacak string, ikinci parametre ise aranılacak örüntüdür. Şöyle yaparız.
std::string example = "fifth\nsixth\nseventh\neighth\nninth";
std::cout << regex_search(example, std::regex("^s")) << endl;
Sonuç olarak false alırız.Yanlış kullanımı şöyledir. Bu örnek derlenmez çünkü ikinci parametre std::regex yerine yanlışlıkla std::string olarak kullanılmaya çalışılıyor.
string regexCriteria1 = "...";
string test = "...";
regex_search( test, regexCriteria1 );
regex_search - string + smatch + regex
Örnek
std::string ile kullanımı şöyledir.
std::regex regexCriteria1 = "...";
std::string str = "...";
std::smatch searchResult;
regex_search( str, searchResult, regexCriteria1 );
ÖrnekŞöyle yaparız.
unsigned int match_count( std::string str, const std::string& user_pattern ){
unsigned int counter = 0;
std::match_results< std::string::const_iterator > what;
std::regex regex( user_pattern );
while( std::regex_search( str, what, regex ) ){
str = what.suffix().str();
++counter;
}
return counter;
}
regex_search - iterator + iterator + smatch + regex
Örnek
iterator ile kullanımı şöyledir.
std::regex r = "...";
std::string str = "...";
std::smatch searchResult;
regex_search (str.begin(), str.end(), searchResult, r );
Eğer istenirse regex_search döngü içinde de kullanılabilir. Bu durumda başlangıç konumunu ilerletmek gerekir.
Hiç yorum yok:
Yorum Gönder