Модераторы: ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Замена с чередованием 
:(
    Опции темы
Julijanna
Дата 7.5.2011, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 24.9.2009

Репутация: нет
Всего: нет



Подскажите пожалуйста, как произвести замену текста на чередование цифр и букв?
PM   Вверх
Pfailed
Дата 8.5.2011, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 6
Всего: 39



$text =~ s/текст/чередование цифр и букв/;


--------------------
PM MAIL   Вверх
Julijanna
Дата 8.5.2011, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 24.9.2009

Репутация: нет
Всего: нет



Цитата(Pfailed @ 8.5.2011,  07:46)
$text =~ s/текст/чередование цифр и букв/;

это понятно, но как записать чередование цифр и букв?
PM   Вверх
Pfailed
Дата 8.5.2011, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 6
Всего: 39



Julijanna, так и пишите 1a2b3c4d5e...



--------------------
PM MAIL   Вверх
Julijanna
Дата 8.5.2011, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 24.9.2009

Репутация: нет
Всего: нет



Я написала такой код:
Код

s/(\S)[а-я]+(\S)/$1asdf$2/g;

Но он заменяет все буквы стоящие внутри слова на "asdf", а нужно каждую маленькую букву русского алфавита заменить на очередную букву латинского алфавита.

Это сообщение отредактировал(а) Julijanna - 8.5.2011, 18:39
PM   Вверх
Pfailed
Дата 8.5.2011, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 6
Всего: 39



А задачу можно более конкретно сформулировать? Вы похоже сами не знаете что вам нужно.


--------------------
PM MAIL   Вверх
Julijanna
Дата 8.5.2011, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 24.9.2009

Репутация: нет
Всего: нет



Цитата(Pfailed @ 8.5.2011,  16:33)
А задачу можно более конкретно сформулировать? Вы похоже сами не знаете что вам нужно.

Я написала такой код:
Код

s/(\S)[а-я]+(\S)/$1asdf$2/g;

Но он заменяет все буквы стоящие внутри слова на "asdf", а нужно каждую маленькую букву русского алфавита заменить на очередную букву латинского алфавита.

Добавлено @ 18:46
Т.е. первую входящюю букву(внутри слова) заменяет на "a", вторую на "b", третью на "с" и т.д...

Это сообщение отредактировал(а) Julijanna - 8.5.2011, 18:47
PM   Вверх
Pfailed
Дата 8.5.2011, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 6
Всего: 39



Ну тогда всё просто. Вам нужно почитать про модификатор e. Смотрите там есть пример: http://www.intuit.ru/department/pl/perl/8/5.html
Слова разделяются \b, он имеет нулевую длину, это чтобы с (\S) не мучиться.
Левая часть оператора замены будет выглядеть так: s/\b([а-я]+)\b/
Над правой подумайте. Модификаторы /ge


--------------------
PM MAIL   Вверх
Julijanna
Дата 8.5.2011, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 24.9.2009

Репутация: нет
Всего: нет



Огромное спасибо. 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема »


 




[ Время генерации скрипта: 0.0967 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.