Ru-Board.club
← Вернуться в раздел «Web-программирование»

» PHP: Регулярные выражения (RegExp, Regular, eregi, preg)

Автор: Cheery
Дата сообщения: 03.02.2010 23:08
Mira

Цитата:
хотелось бы что бы все левые урлы предшествуюшие картинке были удалены, за исключением нескольких сайтов,
подскажите как это сделать?

а на примере?
Автор: Mira
Дата сообщения: 04.02.2010 08:49

Код: фы вафываф ыва фыва [img...] asdf asdf [img...] [img...] as df as[img...] asd fasdf
Автор: Sobsoft
Дата сообщения: 06.02.2010 09:44
Всем доброго времени суток!
Подскажите пожалуйста можно ли содержимое файла (см. ниже) привести в табличный вид?

Код: Название предприятиея М Е Н Ю на 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;
;;;
Автор: usertum
Дата сообщения: 11.02.2010 21:03
Подскажите пожалуйста регулярное выражение что бы можно было использовать только a-z A-Z 0-9. спасибо.
Автор: Mira
Дата сообщения: 11.02.2010 21:04
[a-zA-Z0-9]
пожалуйста
Автор: usertum
Дата сообщения: 11.02.2010 21:19
$pass = "test";
if (preg_match("/a-zA-Z0-9]/",$pass)) {
echo "верно";
}
else {
print "Не верно!";
}

Где ошибка у меня?
Автор: andead
Дата сообщения: 11.02.2010 21:25
[ отсутствует
Автор: Mira
Дата сообщения: 11.02.2010 21:25
их две
забыли открыть [ и указать кол-во символов например + или *
if (preg_match("/[a-zA-Z0-9]*/",$pass)) {
Автор: usertum
Дата сообщения: 11.02.2010 21:27
А мин и макс символов, указать 5.15 в конце?

Добавлено:
Что то и русские символы пропускает и все
Автор: Cheery
Дата сообщения: 11.02.2010 21:40
usertum

Цитата:
Что то и русские символы пропускает и все

да потому что вы проверяете есть ли обычные символы.. а если они есть, значит сразу true ваша регулярка выдаст
preg_match("/[^a-zA-Z0-9]+/",$pass)
вот эта проверяет есть ли какие то символы помимо перечисленных

Цитата:
А мин и макс символов, указать 5.15 в конце?

а точнее описать условие тогда?
Автор: usertum
Дата сообщения: 11.02.2010 21:58
> а точнее описать условие тогда?

Мин 5 максимум 15 символов.
Автор: Cheery
Дата сообщения: 11.02.2010 22:02
usertum

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

/^[a-z0-9]{5,}$/i
вот так лучше будет
Автор: usertum
Дата сообщения: 11.02.2010 22:28
А в этом preg_match("/[^a-zA-Z0-9]+/",$pass) выражении как указать 5 и 15 например?
Автор: Cheery
Дата сообщения: 11.02.2010 22:29
usertum

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

какие 5 и 15? аналогично
preg_match("/^[^a-z0-9]{5,15}$/i",$pass)
Автор: neznayka3
Дата сообщения: 17.02.2010 19:06

Код: <html>
...
<p>...
<p>...
Tovar: car<br />
price:10000<br />
&nbsp;<br />
Tovar: house<br />
price:200000<br />
&nbsp;<br />
...
</html>
Автор: andead
Дата сообщения: 17.02.2010 19:26
neznayka3

Код: Tovar: (\w)+<br />\nprice:(\d)+
Автор: Sobsoft
Дата сообщения: 17.02.2010 20:27

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

Код: Название предприятиея М Е Н Ю на 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.' сстраниц';
?>
Автор: Cheery
Дата сообщения: 17.02.2010 20:44
Sobsoft
www.php.net/explode
делаете разбор по ; и получаете массив с элементами.
и так применяете его к каждой строке по отдельности, формируя нужную вам таблицу
Автор: Sobsoft
Дата сообщения: 18.02.2010 05:00
спасибо
Автор: Mira
Дата сообщения: 18.02.2010 17:51
на форумах часто вставляют линейки и фотки,
хотелось бы что бы все левые урлы предшествуюшие картинке были удалены, за исключением нескольких сайтов,
подскажите как это сделать?
спасибо.


Код: фы вафываф ыва фыва [img...] asdf asdf [img...] [img...] as df as[img...] asd fasdf
Автор: Cheery
Дата сообщения: 21.02.2010 01:41
Mira
напишите по регулярки на каждый тег.. она вытаскивает тип тега и параметры.. потом проверяете параметры, например адрес, по нужному вам списку. и если то, что нужно оставить - оставляете, иначе - удаляете. Не нужно пытаться сделать это одним регулярным выражением. У вас же наверняка есть код, который преобразует это в html теги. вот и используйте его как основу
BBcode на своём сайте
Автор: gagar9
Дата сообщения: 22.02.2010 14:29
подскажите регулярку которая заменить ссылки типа /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),
Автор: Mamay
Дата сообщения: 22.02.2010 15:36
gagar9
судя по всему тебе и регулярка то не нужна
достаточно str_replace('/shop/CID_','http://avto9.ru/shop/CID_',$data);
Автор: gagar9
Дата сообщения: 23.02.2010 21:25
вот сматри есть такой 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>
Автор: Ze_Bolacha
Дата сообщения: 08.03.2010 20:29
Есть форма с передачей переменной по GET в php-файл, который генерит ссылку на основе данных. Вопрос: как при помощи функции preg_match реализовать проверку, чтобы вводимая строка содержала только цифры и слэш и обратный слэш.
И второй вопрос: как заменить затем слэш или обратный слэш на тире, чтобы передать как ссылку.


Алгоритм:

Ввод: 2343/3 или 2343\3
Вывод: 2343-3.

Спасибо.
Автор: Cheery
Дата сообщения: 08.03.2010 20:30
Ze_Bolacha
проверка
[0-9\\\/]
замена
(\\|\/) на -
Автор: Ze_Bolacha
Дата сообщения: 08.03.2010 21:20
Cheery, спасибо. Не поправите меня, у меня почему-то ошибку выдает, я пишу:

if(!preg_match("/^[0-9\\\/]",$sku))

пробовал еще if(!preg_match("/^[0-9\\\/]/",$sku)) - тоже не понравилось
Автор: Cheery
Дата сообщения: 08.03.2010 21:22
Ze_Bolacha
закрывать кто будет /выражение/

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

что именно не понравилось?
Автор: Ze_Bolacha
Дата сообщения: 08.03.2010 21:26
Решено: if(ereg("[^0-9\\\/-]",$sku))
Автор: filarh
Дата сообщения: 10.03.2010 17:53
Помогите составить паттерн
есть в 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 строк, в блоке подчеркнутое есть всегда.

Страницы: 12345678910111213141516171819202122232425262728293031323334

Предыдущая тема: Xitami Web Server + PHP+ zend optimizer


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.