Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: Регулярные выражения (RegExp, Regular, eregi, preg)

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

Открыть новую тему     Написать ответ в эту тему

Rendom



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Учебники регулярных выражений
 
Кто сможет составить выражение для такого случая:

Код:
 
<table border=0>
<tr>
   <td>blablablabla<table border=0><tr><td>blablabla_UNIQTEXT_blablabla</td></tr></table></td>
   <td><table border=1><tr><td>blablabla</td></tr></table>666666</td>
</tr
</table>
 

Нужно удалить из этого всего кусок "<table border=0><tr><td>blablabla_UNIQTEXT_blablabla</td></tr></table>". Иными словами нужно вырезать текст от "<table" до "</table>" внутри которого есть строка "UNIQTEXT", но при этом не удалить лишнего. В результате должно получиться:

Код:
 
<table border=0>
<tr>
   <td>blablablabla</td>
   <td><table border=1><tr><td>blablabla</td></tr></table>666666</td>
</tr
</table>
 

Всего записей: 115 | Зарегистр. 27-10-2002 | Отправлено: 23:26 17-05-2005 | Исправлено: AZJIO, 04:05 09-12-2014
usertum



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
> а точнее описать условие тогда?
 
Мин 5 максимум 15 символов.

Всего записей: 471 | Зарегистр. 01-07-2008 | Отправлено: 22:58 11-02-2010
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
usertum

Цитата:
Мин 5 максимум 15 символов.

/^[a-z0-9]{5,}$/i
вот так лучше будет

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:02 11-02-2010
usertum



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А в этом preg_match("/[^a-zA-Z0-9]+/",$pass)  выражении как указать 5 и 15 например?

Всего записей: 471 | Зарегистр. 01-07-2008 | Отправлено: 23:28 11-02-2010
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
usertum

Цитата:
выражении как указать 5 и 15 например?

какие 5 и 15? аналогично
preg_match("/^[^a-z0-9]{5,15}$/i",$pass)

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:29 11-02-2010
neznayka3

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
<html>
...
<p>...
<p>...
Tovar: car<br />
price:10000<br />
&nbsp;<br />
Tovar: house<br />
price:200000<br />
&nbsp;<br />
...
</html>

Подскажите, как вытащить все товары с ценами.
Спасибо.

Всего записей: 385 | Зарегистр. 07-06-2007 | Отправлено: 20:06 17-02-2010
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
neznayka3

Код:
Tovar: (\w)+<br />\nprice:(\d)+


----------
мой блог

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 20:26 17-02-2010 | Исправлено: andead, 20:27 17-02-2010
Sobsoft



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Всем доброго времени суток!
Подскажите пожалуйста можно ли содержимое файла (см. ниже) привести в табличный вид?

Код:
Название предприятиея М Е Н Ю  на  31.12.09г.
 
Закуски;
Салат из креветок (креветки, икра красная, огурцы, яйцо, сыр, майонез, зелень);100/2/2;47-35;
Салат из кальмаров с сыром (огурцы, рис, яблоки,  майонез, зелень);100/2/2;25-51;
Салат-коктейль "Языковая соломка" (огурцы, яйцо, оливки, майонез, зелень);100/2/2;32-71;
Закуска свекольная с орехом (майонез, зелень);100/2/2;16-82;
Салат из свежей капусты с огурцом (морковь, масло, зелень);100/2/2;13-52;
Яблоки свежие;1 шт.;8-51;
Супы ;
Суп-лапша домашняя, с курицей;45/250/2;23-16;
Молочные блюда;
Каша молочная  пшеничная,  с маслом сливочным;200/15;12-45;
        II блюда;
Рыба жареная по-любительски (филе морского языка);100;33-73;
Язык говяжий отварной;100;57-45;
Мясо, запеченное по-российски (свинина, картофель овощи, сыр, майонез);250;66-32;
Желудки куриные тушеные в сметане;100/75;34-60;
Голубцы с рисом, мясом;216/100/2;40-10;
Голубцы с рисом, мясом, со сметаной;216/100/30/2;44-01;
Мититей;100;33-13;
Соус сметанный с томатом    ;50;6-04;
Сметана;25;3-26;
Масло сливочное;10;2-92   ;
Дополнительные блюда;
Сырники из творога, со сметаной;150/25;46-33;
Сырники из творога, со сгущенным молоком;150/25;46-69;
Сырники из творога, с джемом;150/25;50-71;
Омлет натуральный с сыром;130/5;24-52;
Гарниры;
Картофель, запеченный с зеленью;150/3;12-89;
Гречка отварная с овощами;150;11-72;
Маслины, оливки консервированные;20;12-29;
Огурцы консервированные;35;9-60;
Напитки;
Чай черный "Липтон" ;1 пак.;2-35;
Чай зеленый  с жасмином  "Ахмад" ;200;1-58;
Кофе б/р  "Суаре";2;5-57;
Сахар;16;1-04;
Лимон ;14;1-47;
Минеральная вода "Окуловская" ключевая, "Семь ручьев" газиров.;0,5;20-25;
Сок "J-7"  вишневый;200;22-88;
Сок "J-7"  томатный;200;18-83;
Сок "J-7"   апельсиновый;200;17-67;
Компот фруктовый;200;7-28;
Хлеб "Столичный";30;1-01;
Хлеб "Пшеничный" ;30;1-13;
;;;

Разделители как видите есть, но я ничего умного не придумал - никак не могу въехать.
я написал примерно такой код

Код:
 
<?php
$arr_files = glob('./menu.html');
$i = 0;
foreach ($arr_files as $filename)
{
    $file_data = file_get_contents($filename);
    $file_data = preg_replace('!;!is','<br>',$file_data);
    if(file_put_contents('menu1.html',$file_data))
    $i++;
}
print 'Изменено '.$i.' сстраниц';
?>
 

У меня получается после каждой ; происходит перенос на следующую строку. А нужно нечно типа

Код:
 
<p>Название предприятиея М Е Н Ю  на  31.12.09г.</p>
<table>
<tr>
<td colspan="3">Закуски</td>
</tr>
<tr>
<td>Салат из креветок (креветки, икра красная, огурцы, яйцо, сыр, майонез, зелень)</td><td>100/2/2</td><td>47-35</td>
</tr>
<tr>
<td>Салат из кальмаров с сыром (огурцы, рис, яблоки,  майонез, зелень)</td><td>100/2/2</td><td>25-51</td>
</tr>
<tr>
<td>Салат-коктейль "Языковая соломка" (огурцы, яйцо, оливки, майонез, зелень)</td><td>100/2/2</td><td>32-71</td>
</tr>
</table>
 

Подскажите - как это можно сделать?

А по моему вопросу не найдется ответа... людииии хеееелппп!!!

Всего записей: 32 | Зарегистр. 03-01-2010 | Отправлено: 21:27 17-02-2010
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sobsoft
www.php.net/explode
делаете разбор по ; и получаете массив с элементами.
и так применяете его к каждой строке по отдельности, формируя нужную вам таблицу

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:44 17-02-2010
Sobsoft



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
спасибо

Всего записей: 32 | Зарегистр. 03-01-2010 | Отправлено: 06:00 18-02-2010
Mira



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
на форумах часто вставляют линейки и фотки,  
хотелось бы что бы все левые урлы предшествуюшие картинке были удалены, за  исключением нескольких сайтов,  
подскажите как это сделать?
спасибо.
 

Код:
фы вафываф ыва фыва [img...]  asdf asdf [img...] [img...] as df as[img...] asd fasdf

 
 
blaksiteX, radikal.ru - названия сайтов , которые надо удалить
whitesiteX - все что надо оставить
 
надо смотреть в режиме редактирования, а то пхпх бб код не просто вставить на форум.

Всего записей: 1627 | Зарегистр. 25-11-2003 | Отправлено: 18:51 18-02-2010
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mira
напишите по регулярки на каждый тег.. она вытаскивает тип тега и параметры.. потом проверяете параметры, например адрес, по нужному вам списку. и если то, что нужно оставить - оставляете, иначе - удаляете. Не нужно пытаться сделать это одним регулярным выражением. У вас же наверняка есть код, который преобразует это в html теги. вот и используйте его как основу
BBcode на своём сайте

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:41 21-02-2010
gagar9

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите регулярку которая заменить ссылки типа /shop/CID_173.html на
http://avto9.ru/shop/CID_173.html  
 
/shop/CID_1.html на  http://avto9.ru/shop/CID_1.html  
 
0, 4, 1, '2010-01-23 13:19:25', 'Сообщение администратора!', 'КОМПРЕССОРА COIDO', '0'),
(250, 0, 120, 1, '2010-01-23 13:21:33', 'Сообщение администратора!', 'На нашем сайте обновление каталога добавлен 10 наименований КОМПРЕССОРА COIDO http://avto9.ru/shop/CID_173.html', '0'),
(251, 0, 119, 1, '2010-01-23 13:21:33', 'Сообщение администратора!', 'На нашем сайте обновление каталога добавлен 10 наименований КОМПРЕССОРА COIDO http://avto9.ru/shop/CID_174.html', '0'),
 
 
 
 
или втаскивать из  sql   базы   все  ссилик начинаюший http://www.avto9.ru/shop/CID
 
 
 
 
 
(3360, 'ручки дверные', 12, '1266011452', 'http://www.avto9.ru/search/', 0, 1),
(3361, 'вольтметр', 2, '1266021012', 'http://www.avto9.ru/shop/CID_73_2.html', 0, 1),
(3362, 'решотки радиаторные', 0, '1266061082', 'http://www.avto9.ru/shop/CID_180.html', 0, 1),
(3363, 'коврики из пвх', 1, '1266073870', 'http://www.avto9.ru/', 0, 1),
(3364, 'накладки арок', 0, '1266079889', 'http://avto9.ru/shop/CID_26.html', 0, 1),

Всего записей: 3 | Зарегистр. 22-10-2009 | Отправлено: 15:29 22-02-2010 | Исправлено: gagar9, 15:34 22-02-2010
Mamay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
gagar9
судя по всему тебе и регулярка то не нужна
достаточно str_replace('/shop/CID_','http://avto9.ru/shop/CID_',$data);

----------
Даже самый дурацкий замысел можно выполнить мастерски

Всего записей: 1352 | Зарегистр. 03-09-2002 | Отправлено: 16:36 22-02-2010
gagar9

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот сматри есть такой  php код  каторий  отрезает из  этой  базы  все   электронные  адреса  и поставляет по  строке .
 
мне нужно сделать так чтобы из базы вырезал  все  http://avto9.ru/shop/CID_(от 1 до 10 000.html)
 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>....regexp e-mail адрес....</title>
 
</head>
 
<body>
 
<?php
error_reporting(0);
 
$fp=fopen('email.txt','a+');
 
$r=fread($fp,filesize('email.txt'));
fclose($fp);
 
 
 
 
///////////////reg exp////////////////////
$all_reg='|([\w\d-_\.]{2,40}@[\w\d-_\.]{2,40}\.[\w-_]{2,10})|i';
preg_match_all($all_reg, $r, $all, PREG_SET_ORDER);
/////////////////////////////////////////
 
 
echo '';
for($i=0;$i<count($all);$i=$i+5)
 
{
echo ''.$all[$i][1].'<br>'.$all[$i+1][1].'<br>'.$all[$i+2][1].'<br>'.$all[$i+3][1].'<br>'.$all[$i+4][1].'<br>';
}
 
 
 
echo '';
 
 
 
?>
 
</body>
</html>

Всего записей: 3 | Зарегистр. 22-10-2009 | Отправлено: 22:25 23-02-2010
Ze_Bolacha



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть форма с передачей переменной по GET в php-файл, который генерит ссылку на основе данных. Вопрос: как при помощи функции preg_match реализовать проверку, чтобы вводимая строка содержала только цифры и слэш и обратный слэш.  
И второй вопрос: как заменить затем слэш или обратный слэш на тире, чтобы передать как ссылку.  
 
 
Алгоритм:  
 
Ввод: 2343/3 или 2343\3  
Вывод: 2343-3.  
 
Спасибо.

Всего записей: 185 | Зарегистр. 21-07-2003 | Отправлено: 21:29 08-03-2010
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ze_Bolacha
проверка  
[0-9\\\/]
замена  
(\\|\/) на -

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:30 08-03-2010
Ze_Bolacha



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery, спасибо. Не поправите меня, у меня почему-то ошибку выдает, я пишу:
 
if(!preg_match("/^[0-9\\\/]",$sku))
 
пробовал еще if(!preg_match("/^[0-9\\\/]/",$sku)) - тоже не понравилось

Всего записей: 185 | Зарегистр. 21-07-2003 | Отправлено: 22:20 08-03-2010
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ze_Bolacha
закрывать кто будет /выражение/

Цитата:
пробовал еще if(!preg_match("/^[0-9\\\/]/",$sku)) - тоже не понравилось  

что именно не понравилось?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:22 08-03-2010
Ze_Bolacha



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Решено: if(ereg("[^0-9\\\/-]",$sku))

Всего записей: 185 | Зарегистр. 21-07-2003 | Отправлено: 22:26 08-03-2010 | Исправлено: Ze_Bolacha, 00:35 09-03-2010
filarh

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите составить паттерн  
есть в html по несколько блоков + различный текст между блоками  
 
<font color=darkgray>Point111</font>house
</font><td></table><tr><td><br>

<table><tr valign=top><td width=10>&nbsp;&nbsp;<td width=130>
Date<td> <b>blabla&nbsp;в.</b><br><tr valign=top><td width=10>&nbsp;&nbsp;<td width=130>
<nobr>rate</nobr><td> <b>blabla&nbsp;<img src=../_graph/20x10_green.gif alt='3' width=20 height=10></b><br><tr valign=top><td width=10>&nbsp;&nbsp;<td width=130>
place111<td> <a href="../_maps/coord.htm?lat=41.147102&lon=13.176735&z=18&place=%D0%92%D0%B8%D1%88%D0%BD%D0%B5%D0%B2%D0%BE (%D0%92%D0%BE%D0%BB%D0%BE%D0%B6. %D1%80-%D0%BD)&obj=%D1%83%D1%81%D0%B0%D0%B4%D1%8C%D0%B1%D0%B0  %D0%A5%D1%80%D0%B5%D0%BF%D1%82%D0%BE%D0%B2%D0%B8%D1%87%D0%B5%D0%B9 "%D0%9E%D0%B4%D1%80%D0%BE%D0%B2%D0%BE%D0%BD%D0%B6":  %D1%83%D1%81%D0%B0%D0%B4%D0%B5%D0%B1%D0%BD%D1%8B%D0%B9 %D0%B4%D0%BE%D0%BC" alt="show111" title="show111"><nobr>12354</nobr> <nobr>12345</nobr></a><br></table></table>
 
надо получить  
Point111lat=41.147102&lon=13.17673 т.е. чтобы была именно связка  
структура блока - 5 строк, в блоке подчеркнутое есть всегда.  

Всего записей: 74 | Зарегистр. 09-03-2006 | Отправлено: 18:53 10-03-2010 | Исправлено: filarh, 18:57 10-03-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: Регулярные выражения (RegExp, Regular, eregi, preg)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru