Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   регэкспы в Prel'е (http://forum.oszone.net/showthread.php?t=32000)

ivank 26-03-2002 09:21 218070

Вчера познакомился с этим удивительным способом записи регэкспов, и понял, что конвертор кирилицы в этом форуме сделан очень тормознуто.

Короче, как делать односимвольные замены с помощью tr/// я понял:
Код:

$str =~ tr/abvgde/абвгде/;
А как быть с двух-символьными? Если написать
Код:

$str =~ tr/sh/ш/;
То оно мне просто выдаёт ошибку, как быть?

vasketsov 26-03-2002 16:30 218071

ivank
Странно это очень. может это перл так на кириллицу реагирует?
У tr/// если первый аргумент длиннее второго, и второй не пуст, нужное число раз повторяется последний символ второго аргумента. То есть, у тебя должно получиться шш.
Используй s/// - там уж точно работать будет.

ivank 26-03-2002 19:24 218072

vasketsov
Я сделал двухбуквенные комбинации через s///, а однобуквенные через tr///... Лучше всё было бы в один вызов уложить -- мне кажется, так быстрее...

А если странно то, что ошибка, то это я неверно (совсем) выразился -- работает, но не так как хотелось бы, т.е. именно два шш появляется.

vasketsov 26-03-2002 20:44 218073

ivank
Цитата:

Лучше всё было бы в один вызов уложить
например, так.
Код:

tr/sh/ш|/
вместо палки - любой символ, которого нет. Палки, насколько я знаю код, быть не должно.
то есть, вторым символом пишешь палку.
Затем
Код:

s/\|//g
за 2 прохода - все готово.

ivank 27-03-2002 08:57 218074

vasketsov
Тогда оно будет реагировать не на комбинацию "sh", а на отдельные буквы, т.е. "ostrov pasha", станет "оштров паса"... До меня в конце концов дошло -- обрабатывать tr-ом можно только посимвольно :(

vasketsov 27-03-2002 13:01 218075

Цитата:

не на комбинацию "sh", а на отдельные буквы
да, че-то я чушь пропер.

а что, сильно s/// не устраивает?
по времени мерял разницу?
это ж инет все-таки, львиная доля времени обычно на связь тратится, а не на скрипт.

ivank 27-03-2002 19:33 218076

vasketsov
На самом деле особых проблем в этом нет, просто хотелось как "настоящий перловец" научиться нечитаемые регэкспы писать :)


Время: 22:57.

Время: 22:57.
© OSzone.net 2001-