src/Generic/common/UnicodeUtil.cpp
/* !!!!!! WARNING:
Boost supports unicode, and so chinese hieroglyphs and arabic letters will be recognized as [:alnum:].
However: the equivalent names for English are created using /sed/ which is not unicode-aware.
this means that if an arabic character occurs in english name, it WON'T be removed by this function,
and the otherwize similar name won't be found!!!
*/
Boost supports unicode, and so chinese hieroglyphs and arabic letters will be recognized as [:alnum:].
However: the equivalent names for English are created using /sed/ which is not unicode-aware.
this means that if an arabic character occurs in english name, it WON'T be removed by this function,
and the otherwize similar name won't be found
Boost supports unicode and so chinese hieroglyphs and arabic letters will be recognized as [ : alnum : ] . However : the equivalent names for English are created using / sed / which is not unicode - aware . this means that if an arabic character occurs in english name it WON ' T be removed by this function and the otherwize similar name won ' t be found
std::wstring UnicodeUtil::normalizeNameString(std::wstring str){
	static const boost::wregex e1(L"^[^[:alpha:]]+\\s+");
	return boost::regex_replace(str, e1, L"", boost::match_default | boost::format_sed);
}
std :: wstring UnicodeUtil :: normalizeNameString ( std :: wstring str ) { static const boost :: wregex e1 ( L" \\ " ) ; return boost :: regex_replace ( str , e1 , L" " , boost :: match_default | boost :: format_sed ) ; }
WARNING:
Boost supports unicode, and so chinese hieroglyphs and arabic letters will be recognized as [:alnum:].
WARNING : Boost supports unicode and so chinese hieroglyphs and arabic letters will be recognized as [ : alnum : ] .
//remove all initial words that don't contain letters:
 //!!! NOTE: USING REGULAR NORMALIZATION FIRST, AND NAME NORMALIZATION NEXT IS _NOT_ THE SAME
 //	    	AS NORMALIZATION PERFORMED ON NAMES DURING EQUIV. NAMES GENERATION! (but it's close)
