Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: вопрос о регулярке

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
dadli
Отправлено: 12 Декабря, 2011 - 23:24:51
Post Id



Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011  
Откуда: тифилис


Помог: 5 раз(а)




приветствую
допустим есть такая строка
$str = 'ask3rk4tk8 ktrr3k1aa';
интересует можно ли сделать такое: символи которие стаят через последни два k тоест ети
символи: "ask3rk4tk8 ktrr3k1aa" изменит например символами +. резултат чтоб бил такои "ask3rk4tk8 k+rr3k+aa"

скажите пожалуиста как сделат ето толко одними регуляркои, по другому решить не нада, толко через однои регуляркои интересует. спасибо

(Отредактировано автором: 12 Декабря, 2011 - 23:25:49)

 
 Top
Panoptik
Отправлено: 13 Декабря, 2011 - 00:14:22
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




вот без всяких регулярок
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  $str = 'ask3rk4tk8 ktrr3k1aa';
  3.  $last_k = strrpos($str,'k');
  4.  $substr=substr($str,0,$last_k);
  5.  echo $str.'<br />'.$substr;
  6.  $prelast_k = strrpos($substr,'k');
  7.  echo '<br />'.$last_k.'<br />'.$prelast_k.'<br />';
  8.  $newstr = substr_replace($str,'k+',$last_k,2);
  9.  echo $newstr.'<br />';
  10.  $newstr = substr_replace($str,'k+',$prelast_k,2);
  11.  echo $newstr.'<br />';
  12. ?>


-----
Just do it
 
 Top
DlTA
Отправлено: 13 Декабря, 2011 - 00:27:02
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




PHP:
скопировать код в буфер обмена
  1. $text = "ask3rk4tk8 ktrr3k1aa";
  2. $text2 = preg_replace("/(k)\w/i","$1+",$text);
  3. echo $text."<br>".$text2;
ask3rk4tk8 ktrr3k1aa
ask+rk+tk+ k+rr3k+aa

(Отредактировано автором: 13 Декабря, 2011 - 00:57:27)

 
 Top
dadli
Отправлено: 13 Декабря, 2011 - 01:02:46
Post Id



Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011  
Откуда: тифилис


Помог: 5 раз(а)




Panoptik
спасибо но без регулярок не нада, я тренирую в регулярке и именно "регулярски" варянт хотел Улыбка
DlTA
и вам спасибо но я такои резултат хотел "ask3rk4tk8 k+rr3k+aa" Улыбка


вообшем вот такои вопрос

есть строка $str = 'abkdekfrk543a'; как удалить в неё толко последни символ k. другие способи не интересует, хочу понимать толко с помошчю регуляркйи можно такое? спасибо всем Улыбка

(Отредактировано автором: 13 Декабря, 2011 - 01:05:20)

 
 Top
ams
Отправлено: 13 Декабря, 2011 - 01:06:50
Post Id



Посетитель


Покинул форум
Сообщений всего: 351
Дата рег-ции: Нояб. 2010  


Помог: 13 раз(а)




preg_match_all('/k\w/i',$text,$m);
Получается массив, и в нем можешь делать че хочешь.

А насчет последнего: preg_replace('/(.+)k$/i','$1',$text) // не проверял, но вроде должно )
 
 Top
dadli
Отправлено: 13 Декабря, 2011 - 01:16:52
Post Id



Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011  
Откуда: тифилис


Помог: 5 раз(а)




Цитата:
preg_match_all('/k\w/i',$text,$m);
Получается массив, и в нем можешь делать че хочешь.

спасибо Улыбка

Цитата:
А насчет последнего: preg_replace('/(.+)k$/i','$1',$text) // не проверял, но вроде должно )


не рабочии Огорчение
 
 Top
DlTA
Отправлено: 13 Декабря, 2011 - 01:25:19
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




PHP:
скопировать код в буфер обмена
  1. $text = "ask3rk4tk8 ktrr3k1aa";
  2. $text2 = preg_replace("/(k)\w([^k]*)$/i","$1+$2",$text);
  3. echo $text."<br>".$text2;


ask3rk4tk8 ktrr3k1aa
ask3rk4tk8 ktrr3k+aa
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB