ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[Perl] Замена определенного по счету символа
  #1  
Старый 25.04.2010, 14:01
Аватар для apofis
apofis
Познающий
Регистрация: 23.02.2009
Сообщений: 35
Провел на форуме:
267868

Репутация: 0
По умолчанию [Perl] Замена определенного по счету символа

Добрый день!

Как можно заменить в тексте определенный по счету символ?


Например, вот текст:
Perl — высокоуровневый интерпретируемый динамический язык программирования общего назначения, созданный Ларри Уоллом, лингвистом по образованию.

Как заменить десятый по счету пробел на любой другой символ?
 
Ответить с цитированием

  #2  
Старый 25.04.2010, 14:03
Аватар для Kaimi
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

http://perldoc.perl.org/functions/substr.html
 
Ответить с цитированием

  #3  
Старый 25.04.2010, 14:11
Аватар для apofis
apofis
Познающий
Регистрация: 23.02.2009
Сообщений: 35
Провел на форуме:
267868

Репутация: 0
По умолчанию

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

  #4  
Старый 25.04.2010, 15:12
Аватар для Deathdreams
Deathdreams
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме:
2603363

Репутация: 278
Отправить сообщение для Deathdreams с помощью ICQ
По умолчанию

PHP:
http://php.net/manual/en/function.substr-replace.php
 
Ответить с цитированием

  #5  
Старый 25.04.2010, 18:12
Аватар для psyx
psyx
Новичок
Регистрация: 05.08.2009
Сообщений: 4
Провел на форуме:
60249

Репутация: 5
По умолчанию

Используй регулярные выражения, в твоем случае поиск n-го совпадения:
http://perl.find-info.ru/perl/015/search/1.htm
 
Ответить с цитированием

  #6  
Старый 25.04.2010, 20:37
Аватар для eLWAux
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

PHP код:
$a 'qwertyuiopasdfghjklzxcvbnm';
 print 
$a."\n";
 print 
substr($a09) . '!' substr($a10length($a)); 
если заранее знаешь какие символы заменять надо, заменяй регуляркой
 
Ответить с цитированием

  #7  
Старый 25.04.2010, 21:37
Аватар для taxpayer
taxpayer
Познающий
Регистрация: 17.01.2010
Сообщений: 33
Провел на форуме:
30813

Репутация: 33
По умолчанию

>"Как заменить 10й пробел в строке?"
А то что-то вы странно не понимаете как обстоит вопрос


Я на низком уровне знаю перл, мб это как-то близко к делу
Цитата:
use warnings;
use strict;

my $a = 'A B C D E F G H I J K L M';
my $i = 7; # седьмой пробел

$a =~ s!(\s)!_a_($1, --$i)!eg;
print $a;

sub _a_{ $_[1] ? return $_[0] : return 'S' }

Последний раз редактировалось taxpayer; 25.04.2010 в 22:01..
 
Ответить с цитированием

  #8  
Старый 25.04.2010, 21:58
Аватар для life_glider
life_glider
Познающий
Регистрация: 13.04.2010
Сообщений: 42
Провел на форуме:
460968

Репутация: 81
Lightbulb

PHP код:
#!/usr/bin/perl 
$txt="dgas  adg              dgasdg asdg  adsg   a      dga   sdga      sdg     adsg    asdg  asgd";
@
arr=split(" ",$txt);
if(
scalar @arr 10)
{
    print 
join(' ',@arr[0..9]).'!'.join(' ',@arr[10..$#arr]);
}
else
{
    print 
$txt;

вот так например. Только он почему то переносы строк убивает.
 
Ответить с цитированием

  #9  
Старый 26.04.2010, 06:54
Аватар для krypt3r
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

Код:
$str =~ s{(\s)}{++$count == 10 ? '[SPACE]' : $1;}ge;
?
 
Ответить с цитированием

  #10  
Старый 26.04.2010, 15:13
Аватар для taxpayer
taxpayer
Познающий
Регистрация: 17.01.2010
Сообщений: 33
Провел на форуме:
30813

Репутация: 33
По умолчанию

krypt3r, не проще использовать декремент? зачем лишние сравнения?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Perl] Замена слэша на любой другой символ apofis PHP, PERL, MySQL, JavaScript 3 19.03.2010 07:48
Хакерский сленг Utochka Болталка 18 20.06.2007 12:24



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ