Advertisement
Guest User

Untitled

a guest
Sep 15th, 2018
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.03 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <regex>
  4.  
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10. /*
  11.     string wzorzec ="abc";
  12.  
  13.     string str;
  14.     cin >> str;
  15.  
  16.     if (str == wzorzec){
  17.         cout << "pasuje do wzorca";
  18.     }
  19.     else{
  20.         cout << "nie pasuje do wzorca";
  21.     }
  22. */
  23.     //regex wzorzec("a.bc"); // . - dowolny znak
  24.     //regex wzorzec("abc*");  //ab, abc,abccc, abcccccc
  25.     //regex wzorzec("(abc)*");  // abc, abcabc
  26.     //regex wzorzec("x(abc)*"); //* - 0 lub wiecej
  27.     //regex wzorzec("x(abc)+");   //+ - 1 lub wiecej
  28.     //regex wzorzec("x(abc)?");   //? - 0 lub 1
  29.  
  30.     //regex wzorzec("b[aeuiyo]b");   // [] jedna z wielu
  31.     //regex wzorzec("b(a|e|u|i|y|o)b"); //  -||-
  32.  
  33.  
  34.     //regex wzorzec("g.*g");
  35.     //regex wzorzec("b(a|(g.*g)|u|i|y|o)b"); //  -||-
  36.     //regex wzorzec("[^aeiuyo]*");
  37.  
  38.     //regex wzorzec("[0123456789][0123456789][0123456789]");
  39.     //regex wzorzec("[0123456789]{3}");
  40.     //regex wzorzec("[0123456789]{9,12}");    //od 9 do 12 cyfr
  41.     //regex wzorzec("[0123456789]{3,}");    //minimalnie 3 cyfrowe
  42.     //regex wzorzec("[0123456789]{0,4}"); //max 4 cyfrowe
  43.  
  44.     //regex wzorzec("(abc)g\\1");
  45.     //regex wzorzec("(abc)*g(hh)\\1\\2");   // ?????
  46.     //regex wzorzec("(abc)*h(uuup)*a*k*p*\\1k*k*\\2");  // abc, abcabc
  47.  
  48.     //regex wzorzec("\\d{3}");    //dokladnie 3 cyfry
  49.  
  50.     //regex wzorzec("[[:lower:]]:[[:d:]]");
  51.  
  52.     //regex wzorzec("((\\w\\w\\d )|(\\d\\d\\w ))*");  //d- cyfra, w- litera, cyfra lub "_"
  53.     // 54_ jj9
  54. //    string str;
  55. //    cin >> str;
  56.  
  57.     //poprawny kod pocztowy 38-123
  58.     //regex wzorzec("\\d{2}-\\d{3}");
  59.  
  60.     //data DD:MM:RRRR, DD-MM-RRRR,
  61.     //regex wzorzec("\\d{2}(:|-)\\d{2}(:|-)\\d{4}");
  62.     //regex wzorzec("\\d{2}(:|-)\\d{2}\\1\\d{4}");
  63.  
  64.     //30 dni kazdy miesiac, 01-12
  65.  
  66.     //2000 -2019
  67.  
  68.     //regex wzorzec("(0[123456789]|1\\d|2\\d|30)(:|-)(0[123456789]|10|11|12)\\2(20[01]\\d)");
  69.     //regex wzorzec("(0[1-9]|1\\d|2\\d|30)(:|-)(0[1-9]|10|11|12)\\2(20[01]\\d)");
  70.  
  71.     //regex wzorzec ("abc$"); //$ - na koncu tekstu
  72.     //regex wzorzec ("abc");    // jak na poczatku tekstu
  73.     //getline(cin, str);
  74.     /*
  75.     bool t = regex_match(str, wzorzec);
  76.     if (t){
  77.         cout << "pasuje do wzorca\n";
  78.     }
  79.     else{
  80.         cout << "nie pasuje do wzorca\n";
  81.     }
  82.     */
  83.  
  84.     /*
  85.     regex wzorzec("(\\d{2})(:|-)(\\d{2})\\2\\d{4}");
  86.     bool t2 = regex_search(str, wzorzec);
  87.     if (t2){
  88.         cout << "znalazl wzorzec w tekscie ";
  89.     }
  90.     else{
  91.         cout << "nie znalazl wzorca w tekscie ";
  92.     }
  93.     */
  94.  
  95. //    smatch m;   // m - tablica wynikow: [pelne wyrazenie][]
  96. //    regex wzorzec("(\\d{2})(:|-)(\\d{2})\\2\\d{4}");
  97. //    bool t2 = regex_search(str, m, wzorzec);
  98. //    if (t2){
  99. //        cout << "znalazl wzorzec w tekscie ";
  100. //
  101. //        for (int i=0; i< m.size(); i++){
  102. //            cout << m[i] <<endl;
  103. //        }
  104. //
  105. //        cout << m.prefix() << endl;
  106. //        cout << m.suffix() << endl;
  107. //
  108. //        /*
  109. //        cout << m[0] <<endl;
  110. //        cout << m[1] <<endl;
  111. //        cout << m[2] <<endl;
  112. //        cout << m[3] <<endl;
  113. //        */
  114. //    }
  115. //    else{
  116. //        cout << "nie znalazl wzorca w tekscie ";
  117. //    }
  118.  
  119.     //regex wzorzec("(\\d{2})(:|-)(\\d{2})\\2\\d{4}");
  120.  
  121. //    smatch m;   // m - tablica wynikow: [pelne wyrazenie][]
  122. //    string str = "ala123@gmail.com   23 12312 sad   jannowak@onet.pl    kasia1998@wp.pl";
  123. //
  124. //// CEL:
  125. ////    login: ala123, domena: gmail.com
  126. ////    login: jannowak, domena: onet.pl
  127. ////    login: kasia1998, domena: wp.pl
  128. //
  129. //    regex wzorzec("(\\w+)@(\\w+\.(com|pl))");
  130. //    cout << regex_replace(str, wzorzec, "login: $1, domena: $2 \n", regex_constants::format_no_copy | regex_constants::format_first_only);
  131.  
  132. /*
  133.     bool t2 = regex_search(str, m, wzorzec);
  134.     if (t2){
  135.         cout << "znalazl: " <<endl;
  136.         for (int i=0; i< m.size(); i++){
  137.             cout << m[i] <<endl;
  138.         }
  139.  
  140.     }
  141.     else{
  142.         cout << "nie znalazl wzorca w tekscie ";
  143.     }
  144. */
  145. //    smatch m;
  146. //    fstream file("liczby.txt", std::ios::in);
  147. //    string line;
  148. //    regex wzorzec("\\d{2,}");   //liczby 2 i wiecej cyfrowe
  149. //    regex wzorzec2(" (\\d) ");   //liczby 2 i wiecej cyfrowe
  150. //
  151. //    while (getline(file, line)){
  152. //        //bool t2 = regex_search(line, m, wzorzec);
  153. //        //cout << m[0];
  154. //        cout << regex_replace(line, wzorzec2, "-$1 ", regex_constants::format_no_copy);
  155. //        cout << regex_replace(line, wzorzec, "+$& ", regex_constants::format_no_copy);
  156. //    }
  157. //
  158.  
  159.     smatch m;
  160.     fstream file("liczby.txt", std::ios::in);
  161.     fstream file2("liczby2.txt", std::ios::out);
  162.     string line;
  163.     regex wzorzec("\\d{2,}");   //liczby 2 i wiecej cyfrowe
  164.     regex wzorzec2(" (\\d) ");   //liczby 2 i wiecej cyfrowe
  165.  
  166.     while (getline(file, line)){
  167.         file2 << regex_replace(line, wzorzec2, "-$1 ");
  168.     }
  169.     file.close();
  170.     file2.close();
  171.     file2.open("liczby2.txt", std::ios::in);
  172.     while (getline(file2, line)){
  173.         cout << regex_replace(line, wzorzec, "+$& ");
  174.     }
  175.  
  176.  
  177.     return 0;
  178. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement