Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » регулярные выражения

Ответить
Настройки темы
регулярные выражения

Аватара для Ginger

Рыжая


Сообщения: 1550
Благодарности: 19

Профиль | Сайт | Отправить PM | Цитировать


Помогите, пожалуйста, составить рег. выражение:
Вот пример кода, который не работает:
Код: Выделить весь код
$text = "some text with image <img src=”../user_img/093470394746/image.gif”> goes here for testing purposes";
preg_match('/user_img\/ ? ([0-9]{12})\/ ',$text,$result);

foreach( $result as $v)
echo "res - ".$v;
суть заключается в том, что нужно в данном тексте найти название директории, состоящие исключительно из цифр, и которое _всегда_ находиться после «user_img/».
Вернуть его в переменную.
Количество цифр всегда 12. Читать нужно либо 12 цифр подряд, либо до forward slash «/».

-------
ХР, 2000, NT - BSOD (синие экраны смерти) русский перевод


Отправлено: 17:51, 21-12-2004

 

Аватара для Ginger

Рыжая


Сообщения: 1550
Благодарности: 19

Профиль | Сайт | Отправить PM | Цитировать


не надо мне ИНИ редактироват'.
даже если и надо было бы, то я не раз ето делала

Призонер просто для потомков об'ясняет.

то что нужно сделат':

удалят' style и class везде кроме тага <pre>
все ж аррей
сабмитится через форму и POST

-------
ХР, 2000, NT - BSOD (синие экраны смерти) русский перевод


Отправлено: 19:21, 10-02-2005 | #31



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить PM | Цитировать



FADE, Prisoner
Книга по регулярным выражениям:

Jeffrey Friedl - Mastering Regular Expressions (англ. язык)

http://linuxland.itam.nsc.ru/cgi-bin...essions.pdf.gz

Есть перевод, вышедший в издательстве Питер. За переводом - в книжный магазин.

Отправлено: 03:37, 12-02-2005 | #32


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


mrcnn
1) ссылка битая, т.е. не битая, но скачать не дает...
2) у меня есть Jeffrey Friedl - Mastering Regular Expressions от издательства Питер причем второе издание...
3) но ничего я нашол эту книгу в EDK скоро скачаю... потом может где выложу...

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 11:26, 12-02-2005 | #33


Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


а на руском есть что у кого?)

-------
Основы HTML | Конференции


Отправлено: 23:39, 12-02-2005 | #34


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


E-mail
у меня есть эта книнига на русском, но только она бумажная...
я завтра постараюсь не забыть посмотреть в своих отвалах разных док... может что найду...

но честно говоря, учить английский надо, учить!!!

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 23:58, 12-02-2005 | #35


Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить PM | Цитировать


На русском регулярные выражения очень хорошо описываются в книге "Learning Perl"(llama book, русское название - "Изучаем Perl"). Глава 7, http://webcraft.dem.ru/Perl1/g7.html

Описание регулярных выражений оттуда применимо и к php, потому что в нем поддерживаются PCRE (PERL compatible regualar expressions).
Исключение составляют использование в коде, в Perl-е для регулярных выражений не требуется использование функции:
Ср.
--поиск
Perl
if ($text=~/foo/)
;
PHP
if (preg_match('/foo/',$text))

;
--замена
Perl
if ($string=~s/foo/bar/)
;

PHP
if (preg_replace('/foo/','/bar/', $text)
;

Последний раз редактировалось mrcnn, 14-02-2005 в 21:37. Причина: добавлена ссылка на главу и поправлена опечатка /s/foo/bar


Отправлено: 12:25, 13-02-2005 | #36


Аватара для Oaxa

Пользователь


Сообщения: 84
Благодарности: 0

Профиль | Отправить PM | Цитировать


Возник вопросик. Надеюсь на помощь гуру. Есть примерно следующий код на Perl:
Код: Выделить весь код
#!/usr/bin/perl
use strict;
use locale;
use CGI qw(-no_xhtml -nosticky :standard);
...
my $result = "Some user multiline input:...";
$result =~ s/^(.+?:)/strong($1)/gmeo;
...
Вопрос, собственно, в безопасности подобной конструкции. Не сможет ли пользователь выполнить команду операционной системы, или совершить другие подобные деструктивные действия, введя определенные данные (что-нибудь типа system('...'))? Если да, то как этого избежать? Понимаю, что
Код: Выделить весь код
s/^(.+?:)/<strong>$1<\/strong>)/gm;
избавляет меня от сомнений, но такой вариант меня не вполне устраивает.
Спасибо.

-------
Adios, amigos, nos encontramos mas tarde, nos encontramos...


Отправлено: 17:47, 14-02-2005 | #37


Аватара для Ginger

Рыжая


Сообщения: 1550
Благодарности: 19

Профиль | Сайт | Отправить PM | Цитировать


по моей просьбе было предложено следующее:

$text = preg_replace("#<pre>(.*)\r\n(.*)</pre>#","<pre>\\1<br>\\2</pre>",$text);
$text = preg_replace("'([\r\n])[\s]+'"," ",$text);
$text = preg_replace("#<pre>(.*)<br>(.*)</pre>#","<pre>\\1\r\n\\2</pre>",$text); (мне правда не понятно зачем это...)

но как vadimiron говорил так весь текст будет собиратся и хранится ж переменной.
а тексты болшие..
есть идеи по улучшению?

-------
ХР, 2000, NT - BSOD (синие экраны смерти) русский перевод


Отправлено: 16:55, 21-02-2005 | #38


Аватара для Ginger

Рыжая


Сообщения: 1550
Благодарности: 19

Профиль | Сайт | Отправить PM | Цитировать


вот работающий код:
Код: Выделить весь код
 
       $pres = array(); $i = 0;
       $text = preg_replace('{(<pre[^>]*?>.*</pre>)}Uesi','"UnrealPRE$i".(($pres[$i++]="$1")?"":"")', $text);
       
       $text = preg_replace("'([\r\n])[\s]+'"," ",$text);
       $done = false;
       while (!$done)
       {   $ch1 = strlen($text);
           $text = str_replace("  "," ",$text);
           $ch2 = strlen($text);
           if ($ch1==$ch2) {$done=true;} else {$done=false;}
       }

       $text = preg_replace('/UnrealPRE(\d+)/e', '$pres[$1]', $text);
единственный его баг (который выявлен на даный момент) - он вырезает слова содеержащие знак $ и сам знак отдельно.

-------
ХР, 2000, NT - BSOD (синие экраны смерти) русский перевод


Отправлено: 22:40, 07-04-2005 | #39


Аватара для slaine

Ветеран


Сообщения: 675
Благодарности: 8

Профиль | Отправить PM | Цитировать


А вчём раздичие ereg и preg_match?

-------
живодёр - практик


Отправлено: 17:19, 16-05-2005 | #40



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » регулярные выражения

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Java - Регулярные выражения Java ValVlaGen Программирование и базы данных 0 19-10-2009 08:06
Прочее - grep регулярные выражения dogidogi Общий по Linux 8 28-05-2009 22:54
Разное - PHP - регулярные выражения: HELP GoldenOrb Программирование и базы данных 10 08-09-2008 16:47
PHP - регулярные выражения: HELP GoldenOrb Вебмастеру 13 18-07-2008 16:05
Регулярные выражения est Хочу все знать 6 02-10-2002 14:17




 
Переход