Сео форум про методы раскрутки сайтов. Как раскрутить сайт и заработать в интернете.

Сео форум про методы раскрутки сайтов. Как раскрутить сайт и заработать в интернете. (http://forum-seo.net/index.php)
-   Технические вопросы (http://forum-seo.net/forumdisplay.php?f=28)
-   -   Регулярные выражения и php (http://forum-seo.net/showthread.php?t=12055)

Seo-man 01.03.2012 17:39

Регулярные выражения и php
 
Решил в этой теме собирать полезную справочную инфу о регулярных выражениях

\ - экран символа
. - один любой символ
[ ] - один из символов в ковычках
\s - пробел
\S - непробел
^ - Начало строки
$ - Конец строки
.* любое количества любых символов

{n} - Ровно n раз
{m,} Не менее m
{,n} Не более n
* - Ноль или более
+ Одно или более
? Ноль или одно

(?=шаблон) Позитивный просмотр вперёд
(?<=шаблон) Позитивный просмотр назад

/U - все нежадное по умолчанию


ru.wikipedia.org/wiki/Регулярные_выражения

Seo-man 02.03.2012 12:08

Жадная квантификация – это стремление захватить максимально длинную строку, которая соответствует шаблону.
Ленивая квантификация – это стремление захватить максимально короткую строку, которая соответствует шаблону.

Seo-man 02.03.2012 12:12

Вот пример, не могу понять, почему так работает:

Строка:
000старт ату11111к стопиз чего 222настарты3333ыы,стоп т4444ексстартт-те5555 -wстопч, ч6666ч,чч чччч,чччч, ч

Жадная [старт(.*)стоп]
000старт ату11111к стопиз чего 222настарты3333ыы,стоп т4444ексстартт-те5555 -wстопч, ч6666ч,чч чччч,чччч, ч
Ленивая [старт(.*?)стоп] - ?
000_X_из чего 222на_X_ т4444екс_X_ч, ч6666ч,чч чччч,чччч, ч

000старт ату11111к стопиз чего 222настарты3333ыы,стоп т4444ексстартт-те5555 -wстопч, ч6666ч,чч чччч,чччч, ч
Ревнивая - +
000старт ату11111к стопиз чего 222настарты3333ыы,стоп т4444ексстартт-те5555 -wстопч, ч6666ч,чч чччч,чччч, ч

Seo-man 26.04.2012 15:40

Примеры полезных регулярных выражений:

$new_text = preg_replace('#([,\.\-])(\S)#','$1 $2',$text); // \S - непробельный символ. \ - экран символа
это рег. выражение ставит пробел поле символов ,\.\-


регулярные выражения, примеры на php будут тут.

Нужно удалить ссылку, и оставить текст в сылке.
$new_text = preg_replace('(<a.*?>)(.*?)(<.*?a>)','$2',$text); - почему то не работает.
а эти 2 примера правильные:
$new_text = preg_replace('/<a[^>]*>(.*)<\/a>/iU', '$1', $text);
$new_text = preg_replace('@<a.*?>(.*?)</a>@smi',"$1",$text);


Проверка корректности синтаксиса регулярного выражения
rubular.com/regexes/12916

Seo-man 29.12.2013 13:30

Программа TestRExp для проверки регулярных выражений.

Seo-man 29.12.2013 14:24

Задача - удалить объявление адсенс с текста:

</p></td></tr></tbody></table>начальный текст

<br><br><br><br><br><div align="center">
<script type="text/javascript"><!--
google_ad_client = "pub-680000009679";
/* 336x280, Квадрат мульты */
google_ad_slot = "713000013";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>оконечный текст


Регулярное выражение:
<script[^>]*>[^>]*</script> - не работает.
<script[^>]*?>.*?</script> - работает.

Seo-man 17.04.2015 08:06

Проблема с с регулярными выражениями.

вроде просто всё как 3 копейки,
На странице много разных ссылок, нужны такие, в h3 заключенные с классом some-class:
Цитата:

<h3 class="some-class"><a href="some-link/">Anchor</a></h3>
Надо вытащить все ссылки href. А именно "some-link/".
Цитата:

#<a href="([^"]*)"(.*)>(.*)</a>#siU
так тащу все ссылки со страницы, но меня парит потом еще одну проверку делать.
на страничке куча разных линков, а мне нужны только те, которые заключены в h3 с определенным классом.
там просто еще табуляции разные, пробелы и прочая невидимая ересь встречается
по идее s должен прибивать их, но этого не происходит.

Цитата:

#<h3 class=/"some-class/"><a href="([^"]*)"(.*)>(.*)</a>#siU
так не прокатит


Часовой пояс GMT +3, время: 02:37.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot