Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Нужна помощь с регулярными выражениями
 
 автор: spassmacher   (08.02.2015 в 17:56)   письмо автору
 
 

доброго всем

у меня есть строка типа такого
ааааа ааааа ааааа (ааааа) (13:33)

нужно получить при помощи регулярных выражений
ааааа ааааа ааааа (ааааа)
без (13:33)

я отметил то что я хочу убрать таким образом \(\d{1,2}[:]\d{1,2}\)
теперь хочу отметить обратное, то есть мне нужно все что до этого и кроме него

заранее спасибо

  Ответить  
 
 автор: confirm   (09.02.2015 в 20:49)   письмо автору
 
   для: spassmacher   (08.02.2015 в 17:56)
 

<?
$s 
'ааааа ааааа ааааа (ааааа) (13:33)';
$s trim(preg_replace('/\(\d{2}:\d{2}\)/'''$s));
//или
$s rtrim($s'(0..9:0..9)');

  Ответить  
 
 автор: duhon   (15.02.2015 в 02:01)   письмо автору
 
   для: confirm   (09.02.2015 в 20:49)
 

увидев ваш ответ меня заитересовал способность rtrim принимать шаблон для вырезания, и что самое интересное ваш пример работает
<?
rtrim
($s'(0..9:0..9)'); 

проверил мануал убедился что вы что то перепутали, rtrim не принимает шаблоны, а только неупорядоченый набор символов для вырезания с конца строки. Тоесть выше пример должен выглядить примерно так
<?
rtrim
($s'0..9():')

Хоть разницы при текущих входящих данных нету, но нету никакой магии в том что будет вырезано. Заметно сразу при желании убрать лишний последний пробел - появляються проблемы.
<?
rtrim
($s' (0..9:0..9)');  //"ааааа ааааа ааааа (ааааа"
rtrim($s'0..9(:) ');   //"ааааа ааааа ааааа (ааааа"

Но во втором случае ответ "почему", очевиден.

  Ответить  
 
 автор: confirm   (15.02.2015 в 09:00)   письмо автору
 
   для: duhon   (15.02.2015 в 02:01)
 

> вы что то перепутали, rtrim не принимает шаблоны

Это вы что-то перепутали, ибо о том, что rtrim работает с шаблонами я вроде бы как не упоминал, или где это я такое писал?

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

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования