|
Programiranje Java, Perl, VB, ASP, .NET, C, C++, Pascal, Delphi Sponzor:
![]() |
![]() |
|
Alati teme | Način prikaza |
|
![]() |
#1 |
expert
Grand Master
Datum učlanjenja: 11.04.2010
Poruke: 998
Hvala: 141
959 "Hvala" u 153 poruka
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() ^ I ja se pitam... @morando, koja je razlika naspram ovoga... http://rubular.com/r/GviWLmoGz3
|
![]() |
![]() |
![]() |
#2 |
nedovoljno naspavan
Na probnom radu
Datum učlanjenja: 25.03.2011
Poruke: 21
Hvala: 7
1 "Hvala" u 1 poruci
![]() |
![]() To sam uradio u prvom prolazu:
Kôd:
std::set<std::wstring> s_words; for(std::size_t i = 0; i < v_utf16_lines.size(); ++i) { std::wregex pattern(L"[\\u0400-\\u04FF]+"); const std::wsregex_token_iterator end; std::wsregex_token_iterator ti(v_utf16_lines[i].begin(), v_utf16_lines[i].end(), pattern); for(; ti != end; ++ti) { s_words.insert(*ti); } } I onda drugi prolaz koristim taj set reci da proverim koliko puta se ponavlja svaka ta rec: Kôd:
std::set<std::wstring>::iterator send = s_words.end(); std::set<std::wstring>::iterator sit = s_words.begin(); for(; sit != send; ++sit) { std::size_t w_freq = 0; std::wstring pttr = L"(?<=[^\u0400-\u04FF])(?=[\u0400-\u04FF])" + (*sit) + L"(?<=[\u0400-\u04FF])(?=[^\u0400-\u04FF])"; std::wregex pattern(pttr); ..... } Mislim, mogu to sve u prvom prolazu, ali dajem sebi za primer ako trazim bas neku specificnu rec, recimo: Kôd:
nadji rec: и u: Свекрва се не сећа да је и она некад снаха била. |
![]() |
![]() |
![]() |
#3 |
expert
Grand Master
Datum učlanjenja: 11.04.2010
Poruke: 998
Hvala: 141
959 "Hvala" u 153 poruka
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() MS and Unicode, still a better love story than Twilight
![]() Ja bih u 3 navrata to uradio... početak, kraj, i sredina. ^(и)[^\u0400-\u04FF] [^\u0400-\u04FF](и)$ [^\u0400-\u04FF](и)[^\u0400-\u04FF] Ostaje ti i preg_split (tako se u PHP zove), i onda da prebrojiš koliko ima takvih riječi u arrayu ![]() |
![]() |
![]() |
![]() |
Alati teme | |
Način prikaza | |
|
|