Pogledajte određenu poruku
Staro 19. 02. 2012.   #33
morando
nedovoljno naspavan
Na probnom radu
 
Datum učlanjenja: 25.03.2011
Poruke: 21
Hvala: 7
1 "Hvala" u 1 poruci
morando is on a distinguished road
Default

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);
	}
}
sad "s_words" sadrzi sve "unikatne" reci.
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);
        .....
}
ali ne podrzava lookaround.

Mislim, mogu to sve u prvom prolazu, ali dajem sebi za primer ako trazim bas neku specificnu rec, recimo:
Kôd:
nadji rec:  и
u: Свекрва се не сећа да је и она некад снаха била.
ovde ima 2 и аli mi treba samo kao rec, znaci treba da matchuje 1.
morando je offline   Odgovorite uz citat