Łatwy w obsłudze obsługę wyrażeń regularnych w C ++?




Szukam solidnej, łatwy w obsłudze, regularne wyrażeń dla rodzimej C ++, albo niezależny od platformy lub Windows konkretnego.


wymagania:


* Nie można używać podwyższenie lub bibliotek regex ACE (niestety)
* Nie można używać .NET Regex (lub dowolny kod zarządzany)


Głównym wymogiem jest to, że powinien on być samodzielnym i otwartym.
C ++ 11 zawiera teraz obsługę wyrażeń regularnych. Będzie to niezależne od platformy. Trzeba tylko niedawne kompilatora. Sprawdź poniższą listę, aby wiedzieć, który z nich korzystać.


<http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport>


Mam nadzieję, że to pomoże
**w dev c++: start>>uruchom i wpisz edit zamień tam znaki na takie jakie ciebie interesują następnie po skompilowaniu będziesz posiadał w konsoli znaki jakie cię interesują (ten sposób jest dla lamera)**   
  
oto mój kod na automatyczne zmiany znaków możesz go wykorzystać jeśli chcesz:  
  
#include <iostream>  
#include <fstream>  
#include <vector>  
#include <conio.h>  
  
char changewintodoschar( char & finput )  
{  
 switch( finput )  
 {  
 case 'ą': return( 'Ą' ); break;  
 case 'ć': return( '†' ); break;  
 case 'ę': return( '©' ); break;  
 case 'ł': return( '' ); break;  
 case 'ń': return( 'ä' ); break;  
 case 'ó': return( '˘' ); break;  
 case 'ś': return( '' ); break;  
 case 'ż': return( 'ľ' ); break;  
 case 'ź': return( '«' ); break;  
 case 'Ą': return( '¤' ); break;  
 case 'Ć': return( 'Ź' ); break;  
 case 'Ę': return( '¨' ); break;  
 case 'Ł': return( 'ť' ); break;  
 case 'Ń': return( 'ă' ); break;  
 case 'Ó': return( 'ŕ' ); break;  
 case 'Ś': return( '—' ); break;  
 case 'Ż': return( '˝' ); break;  
 case 'Ź': return( 'Ť' ); break;  
 default: return( finput ); break;  
 }  
}  
  
int main()  
{  
 std::fstream tplik;  
 std::string tfilename, twiersz;  
 std::cout << "podaj nazw© pliku: ";  
 getline( std::cin, tfilename );  
 tplik.open( tfilename.c\_str(), std::ios::in );  
 if( tplik.good() )  
 {  
 std::vector < std::string > trowlist;  
 while( getline( tplik, twiersz ) )  
 {  
 for( unsigned int i = 0; i < twiersz.length(); i++ ) twiersz[ i ] = changewintodoschar( twiersz[ i ] );  
   
 trowlist.push\_back( twiersz );  
 }  
 tplik.close();  
 tplik.clear();  
 tplik.open( tfilename.c\_str(), std::ios::out );  
 if( tplik.good() )  
 {  
 for( unsigned int i = 0; i < trowlist.size(); i++ ) tplik << trowlist[ i ] << std::endl;  
   
 tplik.close();  
 std::cout << "konwersja pliku zostaa ukoäczona!" << std::endl;  
 } else std::cout << "otworzenie pliku do zapisu nie powiodo si©!" << std::endl;  
   
 } else std::cout << "plik o podanej nazwie nie zosta znaleziony!" << std::endl;  
   
 getch();  
 return( 0 );  
} Jest to dość szerokie, ale dam ci tak ogólną odpowiedź, jak tylko mogę.

**CTE ...**

* Są niezindeksowalne (ale mogą używać istniejących indeksów na obiektach, do których istnieją odwołania)
* Nie można mieć ograniczeń
* Są zasadniczo jednorazowe `VIEW` s
* Trwać tylko do momentu uruchomienia następnego zapytania
* Może być rekurencyjny
* Nie masz dedykowanych statystyk (polegaj na statystykach dotyczących podstawowych obiektów)

**#Temp Tables ...**

* Są prawdziwe zmaterializowane tabele, które istnieją w tempdb
* Może być indeksowany
* Może mieć ograniczenia
* Trwaj w życiu obecnego POŁĄCZENIA
* Może odwoływać się do innych zapytań lub podprocedur
* Masz dedykowane statystyki generowane przez silnik

Jeśli chodzi o użycie każdego z nich, mają bardzo różne przypadki użycia.Jeśli masz bardzo duży zestaw wyników lub musisz odwołać się do niego więcej niż raz, umieść go w tabeli `#temp` .Jeśli ma być rekurencyjny, jednorazowy lub po prostu dla uproszczenia logicznego, preferowany jest `CTE` .

Ponadto należy `CTE`**nigdy nie używaj do wykonania**.Prawie nigdy nie przyspieszysz przy użyciu CTE, ponieważ znowu jest to widok jednorazowy.Możesz zrobić z nimi kilka fajnych rzeczy, ale przyspieszenie zapytania nie jest jednym z nich. i tak będziesz z każdym zadaniem przychodzić tutaj? :stuck\_out\_tongue:

po każdej zmiennej powpisuj sobie czytelne komunikaty w print'ach z aktualną wartością zmiennej i będziesz wszystko wiedzieć jak program się wykonuje.

tutaj akurat masz pętlę while z warunkiem x < 5, i w niej zagnieżdżoną drugą… <pre><code>postgres=&gt; \l list of databases name | owner | encoding | collate | ctype | access privileges +++++ postgres | postgres | utf8 | en\_us.utf-8 | en\_us.utf-8 | template0 | postgres | utf8 | en\_us.utf-8 | en\_us.utf-8 | =c/postgres + | | | | | postgres=ctc/postgres template1 | postgres | utf8 | en\_us.utf-8 | en\_us.utf-8 | =c/postgres + | | | | | postgres=ctc/postgres </code></pre><p> <a href="http://www.postgresql.org/docs/current/static/sql-grant.html">dokumenty dotyczące <code>grant</code></a> zawierają wyjaśnienie, jak interpretować dane wyjściowe. aby uzyskać określone uprawnienia w tabeli bieżącej bazy danych, użyj <code>\z mytable</code>.</p> Możesz skorzystać z Word Online - darmowej aplikacji Microsoftu. Działa szybko i bezproblemowo. Tutaj masz poradnik:
  

  
**http://www.download.net.pl/jak-edytowac-dokumenty-pdf-za-darmo/n/5904/** Witaj, jeśli korzystasz ze standardowej klawiatury, to zamiast klawisza Ctrl, musisz wcisnąć klawisz ze znaczkiem Windows+ C lub V, zależnie od tego, czy chcesz kopiować czy wklejać.
  

  
Standardowo komenda to Command+ C lub Command + V, ale na klawiaturze używanej wcześniej z Windowsem, Command zastępuje właśnie znak Windowsa. Tutaj znajdziesz opisy programów do zarządzania mediami społecznościowymi: [http://pl.ccm.net/faq/8461-zarzadzanie-mediami-spolecznosciowymi](/faq/8461-zarzadzanie-mediami-spolecznosciowymi) W dobie miliona haseł tych ważnych i mniej ważnych sensownym rozwiązaniem według mnie jest zaszyfrowany menadżer haseł, bo kto je wszystkie spamięta ? 🙂  

Tego typu rozwiązań jest wiele i tutaj według potrzeb każdy znajdzie coś dla siebie, a idąc dalej Twoim tokiem to menadżer haseł lokalnie czy w chmurze ? bezpieczeństwo czy dostępność, a może jedno i drugie ? Temat ciekawy i rozległy.  

W bardzo fajny sposób przedstawił to Kacper Szurek, zachęcam do zapoznania się:  

<https://www.youtube.com/watch?v=1-3iKtg50Zc> Firefox i Chrome obsługują to <http://userscripts.org/scripts/show/186432> potem można np. wkleić do arkusza kalkulacyjnego i robić co się chce. Może Microsoft Office Publisher?