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

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как получить видео ссылку отсюда  
 
это
 
https://sito.com/content//upload/video/trailer/tmeetmax.mp4
 

Код:
 
<video style="max-width: 100%; max-height: 100%; width: 976px; height: 549px;"  
id="mediabox_html5" autoplay="" preload="none"  
src="https://sito.com/content//upload/video/trailer/tmeetmax.mp4">
<source type="video/mp4" src="/content//upload/video/trailer/tmeetmax.mp4"></video>
 

 
это не работает  
 

Код:
preg_match_all("/(?<=\<source).*?src=\"([^\"]+)\"/", $html2, $all);
 
print_r($all[1]); // all the links will be in this array

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 23:22 22-02-2022
Mavrikii

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

Цитата:
это не работает  

работает.. модификатор /s нужен, так как есть перенос строки, а точка по умолчанию его не включает.
/(?<=\<source).*?src=\"([^\"]+)\"/s

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 23:40 22-02-2022
zagorisback



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

 

Цитата:
Array ( [0] => ' + lst[i].src + ' )

 

Код:
 
preg_match_all("/(?<=\<source).*?src=\"([^\"]+)\"/s", $html2, $all);
 
print_r($all[1]); // all the links will be in this array  
 
 

 
print_r($all[0]); // all the links will be in this array
 

Цитата:
Array ( [0] => type="' + lst[i].type + '" src="' + lst[i].src + '" )

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 23:47 22-02-2022 | Исправлено: zagorisback, 23:49 22-02-2022
Mavrikii

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

Цитата:
 + lst[i].src  

аналигочный код есть в javascript коде той страницы.
может чистого html кода там и нет

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 01:09 23-02-2022
zagorisback



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

Цитата:
аналигочный код есть в javascript коде той страницы.
может чистого html кода там и нет

 
Я проанализировал источник HTML-страницы
mediabox_html5 не находит (странно)
 
Я вижу этот код  
 

Код:
 
 
<div id="download_form" style="display:none" title="Download This File">
 
<span class="download_instructions">
Right click the link below and select save as to download:
<p>
<a id="download_url" href="#">Download Movie</a>
</p>
 
</span>
 
</div>
 
<script>
 
extl = [];
extl["m4v"] = "video/mp4";
extl["mp3"] = "audio/mp3";
extl["ogv"] = "video/ogg";
extl["webm"] = "video/webm";
extl["m3u8"] = "application/x-mpegURL";
 
 
atst = [];
atst[atst.length] = ".flv";
atst[atst.length] = ".f4v";
atst[atst.length] = ".mp4";
atst[atst.length] = ".mpeg4";
atst[atst.length] = ".m4v";
atst[atst.length] = ".m3u8";
atst[atst.length] = ".webm";
atst[atst.length] = ".ogv";
atst[atst.length] = ".mp3";
 
 
df_movie = new Array();
df_movie[df_movie.length] = {id:"144",path:"/content//upload/video/trailer/tmeetmax.mp4",movie_width:"1280",movie_height:"720",name:"trailer",type:"vids",setid:"2",label:"Trailer",thumbnail:"",vtt_file:""};
 
var movie = [];
 
movie["trailer"] = {};  
movie["trailer"]["tmeetmax"] = { path:"/content//upload/lvideo/trailer/tmeetmax.mp4",  showplay:'1', showdownload:'0',movie_width:'1280',movie_height:'720',name:'trailer',type: 'vids',vtt_file: ''};
 
var pxx = null;
 
function loadmovie(t, n)
.......................................................
 
 


Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 06:46 23-02-2022 | Исправлено: zagorisback, 06:48 23-02-2022
Mavrikii

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

Цитата:
Я вижу этот код

и содержимое страницы генерится js кодом. поэтому та регулярка и не нужна, другое нужно вытаскивать.

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 07:42 23-02-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Исправлено, это работает сейчас
 
 

Код:
preg_match_all('#(/.*?\.mp4)#', $html2, $all); // regex for find video mp4  
 
print_r($all[0]); // all the links will be in this array  

 
foreach......................
 
echo '<br>' . $baseUrl .$line; // link
 
ps: $baseUrl Он сочетает в себе результат с URL сайта

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 08:38 23-02-2022 | Исправлено: zagorisback, 08:39 23-02-2022
zagorisback



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

Цитата:
 
<div class="description">              
<span><a href="/portal/site/Forum">Forum</a></span>  
 

 
Мне нужно извлечь это, Вторая строка «Форум»  
 
>Forum</a>
 
Таким образом, результат  
 
Forum
 
 
это не работает  
 

Код:
"\/portal\/site\/(.*)

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 18:45 02-03-2022 | Исправлено: zagorisback, 18:46 02-03-2022
Mavrikii

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

Цитата:
"\/portal\/site\/(.*)"

если из тега <a>, то  

Цитата:
"\/portal\/site\/.*">(.*)<\/a>


Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 23:51 02-03-2022 | Исправлено: Mavrikii, 23:52 02-03-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Только текст между  > <
 
Forum  
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 00:03 03-03-2022
Mavrikii

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

Цитата:
Только текст между  > <
 

я же написал все.

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 00:09 03-03-2022
zagorisback



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

Цитата:
я же написал все.

 
И почему вся ссылка выбрана? , Мне нужно только текст описания
 

 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 00:15 03-03-2022
Mavrikii

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

Цитата:
И почему вся ссылка выбрана? , Мне нужно только текст описания

https://www.phpliveregex.com/p/DR5

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 00:17 03-03-2022
zagorisback



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

Цитата:
https://www.phpliveregex.com/p/DR5

 
Я получил спасибо
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 00:28 03-03-2022
Mavrikii

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

Цитата:
Я получил спасибо

я это написал сразу же в первом сообщении!

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 00:32 03-03-2022
zagorisback



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

Код:
$text ='Julia Zagor Zagor Diabolik Diabolik Tex Tex';

 
   
 
 
 
Но если я также введу слова в «крошечных», результат не очень хороший
 
   
 

Код:
 
 
<?php
// Php regex to remove duplicated words
echo '<br>';
 
 
$text ='Julia julia Zagor zagor Zagor diabolik Diabolik Diabolik Tex Tex tex';
$result_text = preg_replace("/\b(\w+)\s+\\1\b/i", "$1", $text);
echo "<b>Result Text: </b>".$result_text;
 
?>
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 20:32 06-08-2022
Mavrikii

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

Цитата:
Но если я также введу слова в «крошечных», результат не очень хороший

дело не в "крошечных", а в том, что это не работает в случае более чем одного повторения.
 
проще сделать вообще иначе, если расположение слов не играет роли

Код:
$text ='Julia julia Zagor zagor Zagor diabolik Diabolik Diabolik Tex Tex tex';
$words = preg_split('/\s+/', strtolower($text));
$words = array_filter(array_unique($words));
echo join(' ', $words);

 
либо, если уж хочется с регуляркой, то  

Код:
$result_text = preg_replace("/\b(\w+)(\s+\\1\b)+/i", "$1", $text);

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 20:59 06-08-2022 | Исправлено: Mavrikii, 09:36 07-08-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Спасибо, работает
 
Я нашел еще одну альтернативу без "регулярного выражения"
 
Но это часть кода PHP

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 09:33 07-08-2022 | Исправлено: zagorisback, 09:34 07-08-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как найти окончательный URL, отсутствующий по ссылке?
Точно ???. mp4
 
https://media.site.com/content/kot/2020-09/videos/car-bg-1/???.mp4
 
Все это в php

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 01:10 20-08-2022 | Исправлено: zagorisback, 01:10 20-08-2022
Mavrikii

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

Цитата:
Как найти окончательный URL, отсутствующий по ссылке

самостоятельно - никак. либо перебором символов (названий файлов), либо попытаться найти если какой поисковик прошелся по сайту и другим и нашел ссылки на файлы по такому URL.
 
и при чем тут регулярка? или нужно просто название файла выцепить из URL?

Код:
echo basename('https://media.site.com/content/kot/2020-09/videos/car-bg-1/???.mp4');

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 01:16 20-08-2022 | Исправлено: Mavrikii, 02:44 20-08-2022
Открыть новую тему     Написать ответ в эту тему

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