Giriş
Bu metodu kullanmak için şu satır dahil edilir.
Açıklamasını boost'tan aldım ancak std::regex_match için de geçerli.
regex_match - string + regex + smatch
bool döner. Eşleşme olup olmadığını döner, ayrıca sonuçları yakalayabilmemizi sağlar. Java'da şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
İmzası şöyle. Sadece eşleşme olup olmadığını döner.
Şöyle yaparız. Sadece eşleşme olup olmadığını döner.
Aynı örneği boost ile de birebir yapabiliriz.
Bu metodu kullanmak için şu satır dahil edilir.
#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 tamamının verilen regex'e uyup uymadığını true veya false olarak döner. C#'taki Regex.IsMatch() ile aynıdır. İlk parametre doğrulanacak string, ikinci parametre ise düzenli ifadedir.The algorithm regex_match determines whether a given regular expression matches all of a given character sequence denoted by a pair of bidirectional-iterators, the algorithm is defined as follows, the main use of this function is data input validation.
bool döner. Eşleşme olup olmadığını döner, ayrıca sonuçları yakalayabilmemizi sağlar. Java'da şöyle yaparız.
Pattern p = Pattern.compile("^[\\w._]+@\\w+\\.[a-zA-Z]+$");
boolean matched = p.matcher("abcd_ed123.t12y@haha.com").matches();
ÖrnekŞöyle yaparız.
std::string str;
std::regex reg (R"regex((\d+)([GMKgmk]){0,1})regex");
std::smatch match;
bool matched = std::regex_match(str, match, reg);
if(matched) {
...
}
ÖrnekŞöyle yaparız.
const regex reg("([^:]+):([[:digit:]]+)");
smatch match;
if(regex_match(str, match,reg))
{
cout << "ip: " << match[1] << " port: " << match[2] << endl;
}
regex_match metodu - iterator + regexİmzası şöyle. Sadece eşleşme olup olmadığını döner.
template <class BidirectionalIterator, class charT, class traits>
bool regex_match(BidirectionalIterator first, BidirectionalIterator last,
const basic_regex<charT, traits> & e,
regex_constants::match_flag_type flags =
regex_constants::match_default);
regex_match metodu - string + regexŞöyle yaparız. Sadece eşleşme olup olmadığını döner.
#include <iostream>
#include <regex>
#include <string>
using namespace std;
int main() {
regex e("1");
string s = "1,";
cout << regex_match("1", e) << endl; //true
cout << regex_match(s, e) << endl; // true
return 0;
}
Şöyle yaparız. Sadece eşleşme olup olmadığını döner.#include <regex>
std::string str = "11111111111";
if (false == std::regex_match(str, std::regex("[-0-9]+")))
{
std::cout << "Invalid Phone Number!\n";
}
BoostAynı örneği boost ile de birebir yapabiliriz.
#include <boost/regex.hpp>
#include <iostream>
#include <string>
int main() {
boost::regex e("1");
if(boost::regex_match("1", regex_bb01))
std::cout<<"the regex matched\n";
}
Hiç yorum yok:
Yorum Gönder