Forum Webscript.Ru
Программирование => Perl => Тема начата: chouck от 18 Апреля 2001, 11:36:54
-
Как поменять набор букв на другой набор букв? Причем некоторые буквы надо преобразовать одну буквы в две(например при перекодировке Win->Latinica \'Ч\' -> \'СH\'...) .
Вот как мне кажется что-то похожее , но оно не работает так как надо.
$cur =~ tr/абвгдежзийклмнопрстуфхцчшщьыъэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ/abvgde(zh)zijklmnoprstufxc[ch][sh][sh]\'y\'[e\'][yu][ya]ABVGDE[ZH]ZIJKLMNOPRSTUFXC[CH][SH][SH]\'Y\'[E\'][YU][YA]/;
-
я сделал через массивы
-
AliMamed (18-04-2001 12:05):
я сделал через массивы
Как (пример)?
-
$stroka="321";
@search=("1", "2","3");
@replace=("01","02","03");
for($i=0;$i<3;$i++){
$stroka=~ s/$search[$i]/$replace[$i]/g;
}
#stroka получится "030201"
-
$cur =~ tr/БВЧЗДЕЪЙКЛМНОПРТУФХЖИГШЩЯЬбвчздеъйклмнопртуфхжигшщяь/abvgdezijklmnoprstufxc\'y\'eABVGDEZIJKLMNOPRSTUFXC\'Y\'E/;
$cur =~ s{Ц}{zh}g;
$cur =~ s{ц}{ZH}g;
$cur =~ s{Ы}{sh}g;
$cur =~ s{ы}{SH}g;
$cur =~ s{Э}{sh}g;
$cur =~ s{э}{SH}g;
$cur =~ s{Ю}{ch}g;
$cur =~ s{ю}{CH}g;
$cur =~ s{С}{ya}g;
$cur =~ s{с}{YA}g;
$cur =~ s{А}{yu}g;
$cur =~ s{а}{YU}g;
$cur =~ s{б}{yu}g;
$cur =~ s{Б}{YU}g;