Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / perl и замена букв и цифр в предложении / 20 сообщений из 20, страница 1 из 1
04.09.2015, 16:00
    #39043599
evgen25
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
Народ. кто подскажет как в perl реализовать следующуу функцию. допустив есть строка с фамилией мамин-сибиряк или вильгельм де геннин. необходимо, создать функцию, что бы в этой строке все первые буквы менялись на заглавные. то есть на выходе получить Мамин-Сибиряк или Вильгельм Де Геннин.

и еще попутный вопрос. встречался с такой ситуцией когда народ, при написании слов использует цифры. например 0(цифра) -О(буква), 4(цифра) - Ч(буква), 3(цифра)-З(буква) и т.д. как реализовать функцию. что бы при обнаружении цифр в словах они автоматом менялись на нужные буквы?
...
Рейтинг: 0 / 0
04.09.2015, 17:35
    #39043695
Q.Tarantino
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
evgen25,

по заглавным не сложно:

my $istr='my name is vasya';

$istr =~ s/(\W+|^)(\w+)/$1\u$2/g;

print $istr;

а вот по второй задачке тут надо табличку соответствия рисовать, как мне кажется.
...
Рейтинг: 0 / 0
04.09.2015, 17:53
    #39043704
Q.Tarantino
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
даже так:

Код: perl
1.
$istr =~ s/\b(\w+)/\u$1/g;
...
Рейтинг: 0 / 0
04.09.2015, 19:14
    #39043747
evgen25
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
Q.Tarantino,

что то типа такого:
Код: sql
1.
$clean=~ s/0/О/g;

?

а за замену на заглавные буквы спасибо, не думал что всё так просто, меня двойные фамилии которые через дефис пишутся пугали
...
Рейтинг: 0 / 0
04.09.2015, 22:59
    #39043808
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
evgen25,

$str = "как-то в субботу вечером мамин-сибиряк пришёл к вильгельму де геннину."


как фамилии будем распознавать? По википедии?
...
Рейтинг: 0 / 0
05.09.2015, 07:20
    #39043860
Q.Tarantino
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
evgen25Q.Tarantino,

что то типа такого:
Код: sql
1.
$clean=~ s/0/О/g;


?

а за замену на заглавные буквы спасибо, не думал что всё так просто, меня двойные фамилии которые через дефис пишутся пугали
не факт. массив надо использовать. скажи по секрету, зачем тебе perl если регулярные не куришь? :)
а по теме могу подумать, все равно на работе скукота.
да, и все проще - в выражении плюсик можно убрать :)
...
Рейтинг: 0 / 0
05.09.2015, 07:23
    #39043861
Q.Tarantino
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
volodin661evgen25,

$str = "как-то в субботу вечером мамин-сибиряк пришёл к вильгельму де геннину."


как фамилии будем распознавать? По википедии?
тут скорее задача сделать во всех словах заглавные.
скажем есть база, есть фиелд с фио, их и корректируем.
так что не заморачивайся. там никто никуда не приходит :)
...
Рейтинг: 0 / 0
05.09.2015, 07:56
    #39043863
evgen25
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
Q.Tarantino,

ну фамилии это для красоты, скажем есть шаблон, в этот шаблон подставляются имена и фамилии из базы. в базе они все лежат строчными буквами. и вот ради красоты и надо что бы в именах и фамилиях первые буквы были заглавные.
а по поводу регулярных выражений, бывает под вечер ступор в голове возникает. и уже даже элементарные вещи в голове не укладываются. а хочется доделать, что бы спалось легче и крепче. Перл за то и люблю что при обработки текста он всемогущ.
...
Рейтинг: 0 / 0
05.09.2015, 08:03
    #39043864
Q.Tarantino
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
evgen25Q.Tarantino,

ну фамилии это для красоты, скажем есть шаблон, в этот шаблон подставляются имена и фамилии из базы. в базе они все лежат строчными буквами. и вот ради красоты и надо что бы в именах и фамилиях первые буквы были заглавные.
а по поводу регулярных выражений, бывает под вечер ступор в голове возникает. и уже даже элементарные вещи в голове не укладываются. а хочется доделать, что бы спалось легче и крепче. Перл за то и люблю что при обработки текста он всемогущ.
как выяснил мой коллега - в гугле данных решений полно :)
хочешь стать гуру - научись гуглить!

p.s. первое решение не нагуглил, просто люблю перл и решил размять моск. давно не кодил.
...
Рейтинг: 0 / 0
05.09.2015, 13:16
    #39043949
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
evgen25,

если тебя так взволновала утеря красоты при написании фамилий с
маленькой буквы, думаю, есть смысл поработать над правописанием и в других случаях:

авторНарод, кто подскажет, как в perl реализовать следующую функцию. Допустим, есть строка с фамилией мамин-сибиряк или вильгельм де геннин. Необходимо, создать функцию, чтобы в этой строке все первые буквы менялись на заглавные. То есть, на выходе получить Мамин-Сибиряк или Вильгельм Де Геннин.

И ещё попутный вопрос. Встречался с такой ситуацией, когда народ, при написании слов использует цифры. Например 0(цифра) -О(буква), 4(цифра) - Ч(буква), 3(цифра)-З(буква) и т.д. Как реализовать функцию, чтобы при обнаружении цифр в словах они автоматом менялись на нужные буквы?
...
Рейтинг: 0 / 0
05.09.2015, 14:54
    #39043973
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
evgen25допустив есть строка с фамилией мамин-сибиряк или вильгельм де геннин. необходимо, создать функцию, что бы в этой строке все первые буквы менялись на заглавные. то есть на выходе получить Мамин-Сибиряк или Вильгельм Де Геннин.Заменить на компьютере редактора клавиатуру на новую, с исправно работающим Shift'ом. И обязать поправить всю ту галиматью, которую он успел настрочить.
...
Рейтинг: 0 / 0
05.09.2015, 20:10
    #39044061
evgen25
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
vkle,

И как таких умных то в детстве не украли?!
Поумничать то все горазды, вот по делу подсказать, единицы могут
...
Рейтинг: 0 / 0
05.09.2015, 21:22
    #39044077
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
evgen25,

Начать можно с чего-то такого
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
#!/usr/bin/perl -w
use strict;
use utf8;
binmode(STDOUT,':utf8');

my $txt_in = qq~мамин-сибиряк вильгельм де геннин о'генри thomas mann~;

my @w = split(/\s+/, $txt_in); # разделяем строку на слова
my $txt_out = '';

foreach my $i (@w) {
    $i =~ s/^(.)/ucfirst($1)/e;
    $txt_out .= " $i";
}

$txt_out =~ s/^\s*//; # убираем ведущий пробел
print "$txt_out\n";

Напечатает
Код: sql
1.
Мамин-сибиряк Вильгельм Де Геннин О'генри Thomas Mann



После по аналогии добавить ещё обработку всяких вариантов апострофов, дефисов, чего там ещё попадётся...
...
Рейтинг: 0 / 0
05.09.2015, 21:38
    #39044081
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
evgen25Поумничать то все гораздыВероятно, Вы впервые сталкиваетесь с нормализацией уже имеющегося текста. Когда изобретательность пишущих начинает поражать (цифры вместо букв, латиница вместо кириллицы, всевозможные знаки "копипастом из ворда") - вот тогда возникает желание оторвать руки пишущим. Или жестко контролировать текст на вводе.
...
Рейтинг: 0 / 0
06.09.2015, 15:37
    #39044283
Q.Tarantino
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
vkleНачать можно с чего-то такого
чем твой вариант проще моего, в одну строку?
...
Рейтинг: 0 / 0
06.09.2015, 18:54
    #39044349
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
Q.TarantinovkleНачать можно с чего-то такого
чем твой вариант проще моего, в одну строку?С чего Вы взяли, что мой вариант проще? Лично я этого не утверждал. Допилить до рабочего можно и то и другое.
...
Рейтинг: 0 / 0
06.09.2015, 19:02
    #39044352
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
Q.Tarantinoа вот по второй задачке тут надо табличку соответствия рисовать, как мне кажется.Можно так попробовать.
Код: sql
1.
$str =~ tr/403/чоз/;
...
Рейтинг: 0 / 0
15.09.2015, 19:33
    #39052231
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
vkleQ.Tarantinoпропущено...

чем твой вариант проще моего, в одну строку?С чего Вы взяли, что мой вариант проще? Лично я этого не утверждал. Допилить до рабочего можно и то и другое.


вот и допили -сибиряка до рабочего с большой буквы.

в 20 строчек уложишься?

и вообще-то ТС просил функцию.
...
Рейтинг: 0 / 0
16.09.2015, 10:58
    #39052555
Q.Tarantino
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
volodin661вот и допили -сибиряка до рабочего с большой буквы.
было поставлено условие - ВСЕ слова с большой буквы.
что и было реализовано.
что не так?
...
Рейтинг: 0 / 0
16.09.2015, 16:47
    #39053054
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl и замена букв и цифр в предложении
Q.Tarantino,

как раз к Квентину претензий нет,
а к vkle есть,
который поумничал и выдал зачем-то 20 строчек
некорректного кода.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / perl и замена букв и цифр в предложении / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]