Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » регэкспы в Prel'е

Ответить
Настройки темы
регэкспы в Prel'е

редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


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

Короче, как делать односимвольные замены с помощью tr/// я понял:
Код: Выделить весь код
$str =~ tr/abvgde/абвгде/;
А как быть с двух-символьными? Если написать
Код: Выделить весь код
$str =~ tr/sh/ш/;
То оно мне просто выдаёт ошибку, как быть?

-------
http://ivank.ru


Отправлено: 09:21, 26-03-2002

 

Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


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

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 16:30, 26-03-2002 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


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

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

-------
http://ivank.ru


Отправлено: 19:24, 26-03-2002 | #3


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


ivank
Цитата:
Лучше всё было бы в один вызов уложить
например, так.
Код: Выделить весь код
tr/sh/ш|/
вместо палки - любой символ, которого нет. Палки, насколько я знаю код, быть не должно.
то есть, вторым символом пишешь палку.
Затем
Код: Выделить весь код
s/\|//g
за 2 прохода - все готово.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 20:44, 26-03-2002 | #4


редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


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

-------
http://ivank.ru


Отправлено: 08:57, 27-03-2002 | #5


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


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

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

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 13:01, 27-03-2002 | #6


редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


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

-------
http://ivank.ru


Отправлено: 19:33, 27-03-2002 | #7



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » регэкспы в Prel'е

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено




 
Переход