![]() |
Вчера познакомился с этим удивительным способом записи регэкспов, и понял, что конвертор кирилицы в этом форуме сделан очень тормознуто.
Короче, как делать односимвольные замены с помощью tr/// я понял: Код:
$str =~ tr/abvgde/абвгде/; Код:
$str =~ tr/sh/ш/; |
ivank
Странно это очень. может это перл так на кириллицу реагирует? У tr/// если первый аргумент длиннее второго, и второй не пуст, нужное число раз повторяется последний символ второго аргумента. То есть, у тебя должно получиться шш. Используй s/// - там уж точно работать будет. |
vasketsov
Я сделал двухбуквенные комбинации через s///, а однобуквенные через tr///... Лучше всё было бы в один вызов уложить -- мне кажется, так быстрее... А если странно то, что ошибка, то это я неверно (совсем) выразился -- работает, но не так как хотелось бы, т.е. именно два шш появляется. |
ivank
Цитата:
Код:
tr/sh/ш|/ то есть, вторым символом пишешь палку. Затем Код:
s/\|//g |
vasketsov
Тогда оно будет реагировать не на комбинацию "sh", а на отдельные буквы, т.е. "ostrov pasha", станет "оштров паса"... До меня в конце концов дошло -- обрабатывать tr-ом можно только посимвольно :( |
Цитата:
а что, сильно s/// не устраивает? по времени мерял разницу? это ж инет все-таки, львиная доля времени обычно на связь тратится, а не на скрипт. |
vasketsov
На самом деле особых проблем в этом нет, просто хотелось как "настоящий перловец" научиться нечитаемые регэкспы писать :) |
Время: 22:57. |
Время: 22:57.
© OSzone.net 2001-