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]   

> Без описания
pda.strelok
Отправлено: 26 Декабря, 2012 - 09:54:09
Post Id


Новичок


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


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




Все доброго времени суток!

Имеется примерно такая строчка

PHP:
скопировать код в буфер обмена
  1. fileid = 22 AND (files.postid = 1 OR files.hash = 'blabla')


Подскажите пожалуйста регулярку, что бы получить из строки только fileid = 22, а остальное вырезать.

ЗЫ. В этой строке могут быть и другие условия, только fileid в начале постоянное значение.

(Отредактировано автором: 26 Декабря, 2012 - 09:54:46)

 
 Top
DlTA
Отправлено: 26 Декабря, 2012 - 10:31:36
Post Id



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


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


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




/\b(fileid\s*=\s*\d+)/

(Отредактировано автором: 26 Декабря, 2012 - 10:32:15)

 
 Top
sauronkolco
Отправлено: 18 Января, 2013 - 19:55:16
Post Id


Новичок


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


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




Доброго времени суток! У меня очень схожа ситуация, только в обратном сохранении, вот код:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.  
  4.     $dir = "123";   //Выбор директории
  5.         $files = scandir($dir);    //Сканирование директории)
  6.          array_shift($files); // Удаление файла '.'
  7.          array_shift($files); // Удаление файла '..'
  8.  
  9. $str = $files[0];
  10. echo $files[0];
  11. [b]$isk = "^[0-9]";[/b]
  12. $zam = "1";
  13. $ok = ereg_replace($isk, $zam, $str);
  14.  
  15. rename ("$dir/$files[0]", "$dir/$ok");
  16.  
  17. ?>

Если ставлю слеш, перестаёт вообще работать. Нужно добиться что бы находил в строке либо первое слово содержащее только цыфры, либо пробел, но только в начале строки. Что бы не затрагивал ни остальные цыфры в последующих словах ни пробелы между слов. + ко всему, если первое слово содержит цыфры впереди идущие то либо их переделывать в пробел, либо удалять (последнее актуальней).
Требуется от всего кода находить в определённой директории все файлы, считывать их имена и править, что бы не оставались впереди идущих ни цыфр ни пробелов. Не понял
 
 Top
LShark
Отправлено: 18 Января, 2013 - 21:39:43
Post Id



Частый гость


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


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




Цитата:
Цыган на цыпочках стоял перед цыпленком, кричал цып-цып

Это все слова, в которых после Ц идет Ы, а не И.

Перебор всего массива с именами файлов лучше сделать через

Полученное имя обработать
Это удалит пробелы в начале и в конце имени файла.

Приведи примеры имен, какие требуется поправить.
Я понял, что если имя " 123 вася пупкин 92", то надо, чтобы осталось только "вася пупкин 92"?

Или что? А если имя " 182Вася Пупкин"? Что обрезать? 182 или 182Вася?

Задание вообще малопонятное.
sauronkolco пишет:
Если ставлю слеш

КУДА?

(Отредактировано автором: 18 Января, 2013 - 21:42:29)



-----
Истина прежде всего в том, что...
 
 Top
sauronkolco
Отправлено: 18 Января, 2013 - 23:11:17
Post Id


Новичок


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


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




Практически правильно мысль идёт, нужно что бы из имён например:

654привет
65 привет 2
65 12 привет 2как дела

получить соответственно:

привет
привет 2
привет 2как дела

Что бы даже пробелы убрать впереди имён! Обрезка должна убирать цыфры и пробелы до ближайщей первой (любой) буквы. А слеш ставлю в регулярном выражении, одинаково не работает с ним что в конце что в начале.

(Отредактировано автором: 18 Января, 2013 - 23:30:04)

 
 Top
DeepVarvar Супермодератор
Отправлено: 19 Января, 2013 - 00:26:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




LShark пишет:
Это все слова, в которых после Ц идет Ы, а не И.
Еще есть выражение "на цырлах" и фамилия "Цырыпкин" Закатив глазки
sauronkolco пишет:
должна убирать цыфры и пробелы до ближайщей первой (любой) буквы


sauronkolco пишет:
$files = scandir($dir); //Сканирование директории)
array_shift($files); // Удаление файла '.'
array_shift($files); // Удаление файла '..'

Эммм, то же самое, и даже больше:
PHP:
скопировать код в буфер обмена
  1. foreach (glob($dir . '/*') as $filename) {
  2.   // TODO
  3. }
 
 Top
sauronkolco
Отправлено: 20 Января, 2013 - 19:31:36
Post Id


Новичок


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


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




Большое спасибо, очень помогли. Как наберётся достаточное количество сообщений поставлю "спасибо"!
 
 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