Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <regex>
- using namespace std;
- int main()
- {
- /*
- string wzorzec ="abc";
- string str;
- cin >> str;
- if (str == wzorzec){
- cout << "pasuje do wzorca";
- }
- else{
- cout << "nie pasuje do wzorca";
- }
- */
- //regex wzorzec("a.bc"); // . - dowolny znak
- //regex wzorzec("abc*"); //ab, abc,abccc, abcccccc
- //regex wzorzec("(abc)*"); // abc, abcabc
- //regex wzorzec("x(abc)*"); //* - 0 lub wiecej
- //regex wzorzec("x(abc)+"); //+ - 1 lub wiecej
- //regex wzorzec("x(abc)?"); //? - 0 lub 1
- //regex wzorzec("b[aeuiyo]b"); // [] jedna z wielu
- //regex wzorzec("b(a|e|u|i|y|o)b"); // -||-
- //regex wzorzec("g.*g");
- //regex wzorzec("b(a|(g.*g)|u|i|y|o)b"); // -||-
- //regex wzorzec("[^aeiuyo]*");
- //regex wzorzec("[0123456789][0123456789][0123456789]");
- //regex wzorzec("[0123456789]{3}");
- //regex wzorzec("[0123456789]{9,12}"); //od 9 do 12 cyfr
- //regex wzorzec("[0123456789]{3,}"); //minimalnie 3 cyfrowe
- //regex wzorzec("[0123456789]{0,4}"); //max 4 cyfrowe
- //regex wzorzec("(abc)g\\1");
- //regex wzorzec("(abc)*g(hh)\\1\\2"); // ?????
- //regex wzorzec("(abc)*h(uuup)*a*k*p*\\1k*k*\\2"); // abc, abcabc
- //regex wzorzec("\\d{3}"); //dokladnie 3 cyfry
- //regex wzorzec("[[:lower:]]:[[:d:]]");
- //regex wzorzec("((\\w\\w\\d )|(\\d\\d\\w ))*"); //d- cyfra, w- litera, cyfra lub "_"
- // 54_ jj9
- // string str;
- // cin >> str;
- //poprawny kod pocztowy 38-123
- //regex wzorzec("\\d{2}-\\d{3}");
- //data DD:MM:RRRR, DD-MM-RRRR,
- //regex wzorzec("\\d{2}(:|-)\\d{2}(:|-)\\d{4}");
- //regex wzorzec("\\d{2}(:|-)\\d{2}\\1\\d{4}");
- //30 dni kazdy miesiac, 01-12
- //2000 -2019
- //regex wzorzec("(0[123456789]|1\\d|2\\d|30)(:|-)(0[123456789]|10|11|12)\\2(20[01]\\d)");
- //regex wzorzec("(0[1-9]|1\\d|2\\d|30)(:|-)(0[1-9]|10|11|12)\\2(20[01]\\d)");
- //regex wzorzec ("abc$"); //$ - na koncu tekstu
- //regex wzorzec ("abc"); // jak na poczatku tekstu
- //getline(cin, str);
- /*
- bool t = regex_match(str, wzorzec);
- if (t){
- cout << "pasuje do wzorca\n";
- }
- else{
- cout << "nie pasuje do wzorca\n";
- }
- */
- /*
- regex wzorzec("(\\d{2})(:|-)(\\d{2})\\2\\d{4}");
- bool t2 = regex_search(str, wzorzec);
- if (t2){
- cout << "znalazl wzorzec w tekscie ";
- }
- else{
- cout << "nie znalazl wzorca w tekscie ";
- }
- */
- // smatch m; // m - tablica wynikow: [pelne wyrazenie][]
- // regex wzorzec("(\\d{2})(:|-)(\\d{2})\\2\\d{4}");
- // bool t2 = regex_search(str, m, wzorzec);
- // if (t2){
- // cout << "znalazl wzorzec w tekscie ";
- //
- // for (int i=0; i< m.size(); i++){
- // cout << m[i] <<endl;
- // }
- //
- // cout << m.prefix() << endl;
- // cout << m.suffix() << endl;
- //
- // /*
- // cout << m[0] <<endl;
- // cout << m[1] <<endl;
- // cout << m[2] <<endl;
- // cout << m[3] <<endl;
- // */
- // }
- // else{
- // cout << "nie znalazl wzorca w tekscie ";
- // }
- //regex wzorzec("(\\d{2})(:|-)(\\d{2})\\2\\d{4}");
- // smatch m; // m - tablica wynikow: [pelne wyrazenie][]
- // string str = "ala123@gmail.com 23 12312 sad jannowak@onet.pl kasia1998@wp.pl";
- //
- //// CEL:
- //// login: ala123, domena: gmail.com
- //// login: jannowak, domena: onet.pl
- //// login: kasia1998, domena: wp.pl
- //
- // regex wzorzec("(\\w+)@(\\w+\.(com|pl))");
- // cout << regex_replace(str, wzorzec, "login: $1, domena: $2 \n", regex_constants::format_no_copy | regex_constants::format_first_only);
- /*
- bool t2 = regex_search(str, m, wzorzec);
- if (t2){
- cout << "znalazl: " <<endl;
- for (int i=0; i< m.size(); i++){
- cout << m[i] <<endl;
- }
- }
- else{
- cout << "nie znalazl wzorca w tekscie ";
- }
- */
- // smatch m;
- // fstream file("liczby.txt", std::ios::in);
- // string line;
- // regex wzorzec("\\d{2,}"); //liczby 2 i wiecej cyfrowe
- // regex wzorzec2(" (\\d) "); //liczby 2 i wiecej cyfrowe
- //
- // while (getline(file, line)){
- // //bool t2 = regex_search(line, m, wzorzec);
- // //cout << m[0];
- // cout << regex_replace(line, wzorzec2, "-$1 ", regex_constants::format_no_copy);
- // cout << regex_replace(line, wzorzec, "+$& ", regex_constants::format_no_copy);
- // }
- //
- smatch m;
- fstream file("liczby.txt", std::ios::in);
- fstream file2("liczby2.txt", std::ios::out);
- string line;
- regex wzorzec("\\d{2,}"); //liczby 2 i wiecej cyfrowe
- regex wzorzec2(" (\\d) "); //liczby 2 i wiecej cyfrowe
- while (getline(file, line)){
- file2 << regex_replace(line, wzorzec2, "-$1 ");
- }
- file.close();
- file2.close();
- file2.open("liczby2.txt", std::ios::in);
- while (getline(file2, line)){
- cout << regex_replace(line, wzorzec, "+$& ");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement