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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
JacobyD

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как обозначить от начала строки до слова "img"?

Всего записей: 38 | Зарегистр. 03-08-2009 | Отправлено: 17:14 05-08-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
JacobyD
повторяю в последний раз - прочитайте ссылку в моей подписи о том, как следует задавать вопррсы. Обозначить что?

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 18:54 05-08-2009
JacobyD

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А как вы думаете о чем топик и какие здесь вопросы обсуждают?
-Обозначить что?  
-обозначить выражение
 
Добавлено:
Жаль что вы не думаете...




Я никак не думаю. В последний раз говорю - задавайте вопросы объясняя и с примерами. Больше предупреждений не будет /Cheery/

Всего записей: 38 | Зарегистр. 03-08-2009 | Отправлено: 19:38 05-08-2009 | Исправлено: Cheery, 20:08 05-08-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
JacobyD
Уважаемый. Ваш уровень знаний был уже оценен из вашей первоначальной темы, поэтому и было сказано - формулируйте вопросы подробно, так как под тем, что вы хотите сказать, можно понимать что угодно. А будете флеймить не по делу - получите бан без каких либо сомнений.
 
Если просто хотите получить кусок строки (именно получить, а не обозначить, как было сказано), то  
/^(.*?)img/im


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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:18 05-08-2009 | Исправлено: Cheery, 20:23 05-08-2009
JacobyD

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
спасибо
p.s. я хочу его обозначить... для замены, а не получить

Всего записей: 38 | Зарегистр. 03-08-2009 | Отправлено: 17:49 06-08-2009 | Исправлено: JacobyD, 14:25 10-08-2009
board478

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день, как получить с помощью рег. выражения второй блок на сайте, это кусок html странички и хочу получить всё что между  
--------------------------------------------------------------------------
class="testclass" ............  это получить  ........ class="testclass"  
--------------------------------------------------------------------------
 
или получить весь блок  class="testclass"
--------------------------------------------------------------------------
<div style="padding-left:5px;" class="testclass" border="1">  
<p><b>fkjgnfjhntrj fgknfjh dfghnfdjkgn dfgng </b><div>uvjnv gjnjrkg tngjkb  dkgndfjkg <div class="test25">
dfgkjhf dgkbdfjgb dgkjdfjkg dfgndfjgf</div></div><p>
</div>
--------------------------------------------------------------------------
 
 
вот блоки html которые интересуют
..........................
................................
<div style="padding-left:5px;" class="testclass" border="1">  
<p><b>fkjgnfjhntrj fgknfjh dfghnfdjkgn dfgng </b><div>uvjnv gjnjrkg tngjkb  dkgndfjkg <div class="test25">
dfgkjhf dgkbdfjgb dgkjdfjkg dfgndfjgf</div></div><p>
</div>
 
<div style="padding-left:5px;" class="testclass" border="1">  
<p><b>fkjgnfjhntrj fgknfjh dfghnfdjkgn dfgng </b><div>uvjnv gjnjrkg tngjkb  dkgndfjkg <div class="test25">
dfgkjhf dgkbdfjgb dgkjdfjkg dfgndfjgf</div></div><p>
</div>
 
<div style="padding-left:5px;" class="testclass" border="1">  
<p><b>fkjgnfjhntrj fgknfjh dfghnfdjkgn dfgng </b><div>uvjnv gjnjrkg tngjkb  dkgndfjkg <div class="test25">
dfgkjhf dgkbdfjgb dgkjdfjkg dfgndfjgf</div></div><p>
</div>
..........................
................................

Всего записей: 24 | Зарегистр. 14-09-2009 | Отправлено: 14:29 14-09-2009
Cheery



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

Цитата:
или получить весь блок  class="testclass"  

/(<div[^<>]+class="testclass".*<\/div>)/Ui
что то такого вида  

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:33 14-09-2009
board478

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
проверил и не работает к большому сожалению (

Всего записей: 24 | Зарегистр. 14-09-2009 | Отправлено: 16:21 15-09-2009
Cheery



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

Цитата:
проверил и не работает к большому сожалению

работает.. просто если есть переносы строк, то добавьте модификатор s

Цитата:
/(<div[^<>]+class="testclass".*<\/div>)/Usi



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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:25 15-09-2009 | Исправлено: Cheery, 20:26 15-09-2009
board478

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
да огромное преогромное спасибо!!!!!!
 
из-за такого вот нюанса кучу времени потярял!
спасибо за краткое и доходчивое объяснение )))))))))))))

Всего записей: 24 | Зарегистр. 14-09-2009 | Отправлено: 17:01 16-09-2009
vegaweb



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

Код:
 if (preg_match('|<td align="Center">USD</td><td align="Center">100</td><td align="Left">доларів США</td><td align="Right">(.*)</td>|Usi',$str,$matches)) {
    echo $matches[1];
} else {
    echo "Нифига нету.";
}

и "нифига нету"... в чем трабла?

Всего записей: 107 | Зарегистр. 13-03-2009 | Отправлено: 17:59 05-10-2009
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vegaweb
а входной текст где? телепатов нет

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 18:43 05-10-2009
vegaweb



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

Код:
<?
header("Content-Type: text/html; charset=utf-8");
$str =file_get_contents('http://www.bank.gov.ua/Fin_ryn/OF_KURS/Currency/FindByDate.aspx');
 
 if (preg_match('|<td align="Center">USD</td><td align="Center">100</td><td align="Left">доларів США</td><td align="Right">(.*)</td>|Usi',$str,$matches)) {
    echo $matches[1];
} else {
    echo "Нифига нету.";
}
 
?>

парсить надо курс валют доллары США к гривне.  
http://www.bank.gov.ua/Fin_ryn/OF_KURS/Currency/FindByDate.aspx
Это и есть входной текст.

Всего записей: 107 | Зарегистр. 13-03-2009 | Отправлено: 13:43 06-10-2009
Mamay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
имхо для украины актуальнее вот эта инфа
http://content.finance.ua/ru
а то нацбанк часто лежит... )))
какой банк такой и сайт )

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

Всего записей: 1352 | Зарегистр. 03-09-2002 | Отправлено: 17:47 06-10-2009
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vegaweb
скопировал ваш пример в файл, запустил, результат: 801.0000
 
   
 
в какой кодировке у вас скрипт?

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 18:31 06-10-2009 | Исправлено: andead, 18:32 06-10-2009
mitiy

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
подскажите плиз. заменяю при выводе страницы втречающиеся в глоссарии термины на  
<a href="url">термин</a> , но если в тексте встречаются ссылки и названии ссылки встречается термин, как например тут:
<a href="url">текст термин текст</a>
то preg_replace заменяет термин в названии ссылки тоже и весь код страницы портиться. как ограничить preg_replace чтобы он не трогал термины внутри названий уже существующих ссылок.
 
текущий код замены:
$glossary['str'] = "(\b|\B)".$glossary['str']."(\b)";
$row['full_story'] = preg_replace("'".$glossary['str']."'i", "<a href=\"".$glossary_link."\">".$glossary['str']."</a>", $row['full_story']);
 
 
пробую так:
$glossary['str'] = "(^2|\b|\B)".$glossary['str']."(^2|\b)(?!<\/a)";
выходит но только если термин стоит прямо перед </a> , показать что там могут быть ещё слова не получается

Всего записей: 8 | Зарегистр. 26-05-2003 | Отправлено: 17:47 07-10-2009
ForposT_ForeveR



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите пожалуйста, как заменить в след. строке "\n" на "."
Строка начитается с двух символов $$
 

Код:
$$string(здесь переход на новую строку и его заменить на . -точку)


Всего записей: 525 | Зарегистр. 11-12-2004 | Отправлено: 20:16 07-10-2009
kivan



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

Код:
 
$result = preg_replace('/(\$\$.+)\n/', '$1.', $text);
 


----------
There are 10 kinds of people in the World...
Those who understand binary, and those who dont!

Всего записей: 341 | Зарегистр. 23-11-2004 | Отправлено: 12:05 08-10-2009
Nukedx



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите пожалуйста, как вырезать текст так:
 
 
Код:
Англия, 1966 год: рок-н-ролл звучит по радио лишь два часа в неделю. Но в четырех милях от берега группа отчаянных...

 
от сюда:

Код:
 
<b> Описание:</b>
    <div id='about_field' >Перевод: Профессиональный <br />
<br />
Режиссер: Ричард Кёртис / Richard Curtis<br />
<br />
В ролях: Риз Дэрби, Ник Фрост, Билл Найи, Филип Сеймур Хоффман, Том Старридж, Кеннет Брэна, Криc О`Дауд, Кэтерин Паркинсон, Талула Райли<br />
<br />
Англия, 1966 год: рок-н-ролл звучит по радио лишь два часа в неделю. Но в четырех милях от берега группа отчаянных диджеев крутит запретную музыку сутки напролет. Поклонники называют их национальными героями. Аудитория превышает 20 миллионов человек. Но правительство считает их врагами: чиновники любыми силами стараются прекратить вещание. Радиопиратам приходится выбирать: бежать или наплевать на закон и ждать последствий.</div>


Всего записей: 18 | Зарегистр. 31-10-2006 | Отправлено: 23:46 08-10-2009
vegaweb



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andead
точно, трабла была в кодировке )
Спасибо за наводку!

Всего записей: 107 | Зарегистр. 13-03-2009 | Отправлено: 13:43 09-10-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 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