X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Регулярное выражение, помогите составить
500
500
Topic Starter сообщение 10.3.2014, 19:24; Ответить: 500
Сообщение #1


Завсегдатай
*****

Группа: Active User
Сообщений: 964
Регистрация: 21.10.2008
Из: чего состоит атом?
Поблагодарили: 145 раз
Репутация:   38  


Добрый вечер. Помогите составить регулярное выражение для ссылок вида:
_https://mega.co.nz/#!AVwmzKhI!Sy5Wij32VD0-g4KCzUZDLgqt0gUV2GodAkMZqc7TXgc
то есть начало _https://mega.co.nz/#! у всех одинаковое, дальше идет хэшкод.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Tollun
Tollun
сообщение 10.3.2014, 19:50; Ответить: Tollun
Сообщение #2


Старожил
******

Группа: Active User
Сообщений: 1595
Регистрация: 1.10.2009
Из: Хабаровск
Поблагодарили: 394 раза
Репутация:   66  


Что из них получить?
или их выдрать надо?

Сообщение отредактировал Tollun - 10.3.2014, 19:51


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
500
500
Topic Starter сообщение 10.3.2014, 20:01; Ответить: 500
Сообщение #3


Завсегдатай
*****

Группа: Active User
Сообщений: 964
Регистрация: 21.10.2008
Из: чего состоит атом?
Поблагодарили: 145 раз
Репутация:   38  


выражения
Код
<a href="https://mega.co.nz/#!AVwmzKhI!Sy5Wij32VD0-g4KCzUZDLgqt0gUV2GodAkMZqc7TXgc" class="myclass" target="_blank">Текст</a>

нужно заменить на
Код
<span class="dwn" data-link="<?php get_field('new_link')?>">Текст</span>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Tollun
Tollun
сообщение 10.3.2014, 20:19; Ответить: Tollun
Сообщение #4


Старожил
******

Группа: Active User
Сообщений: 1595
Регистрация: 1.10.2009
Из: Хабаровск
Поблагодарили: 394 раза
Репутация:   66  


Код
<a href="https://mega.co.nz([^>]+)>([^<]+)</a>

Код
<a(.+[mega.co.nz][^>]+)>([^<]+)</a>


Сообщение отредактировал Tollun - 10.3.2014, 20:23


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 10.3.2014, 20:28; Ответить: x64
Сообщение #5


F.A.L.L.O.U.T.
*******

Группа: Super Moderator
Сообщений: 3427
Регистрация: 30.6.2011
Из: Железнодорожный (Балашиха)
Поблагодарили: 2749 раз
Репутация:   289  


Код
<a href="https://mega\.co\.nz/#!.+?</a>


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
500
500
Topic Starter сообщение 10.3.2014, 21:11; Ответить: 500
Сообщение #6


Завсегдатай
*****

Группа: Active User
Сообщений: 964
Регистрация: 21.10.2008
Из: чего состоит атом?
Поблагодарили: 145 раз
Репутация:   38  


Код
function mega_parse($str) {
    $archive_id = get_field("archive_id");
    if($archive_id == "") return $str;
    $pattern = "<a(.+[mega.co.nz][^>]+)>([^<]+)</a>";
    $replacement = "<span data-link='http://xsite.net/?id=".$archive_id."' class='dwn'>Скачать / Download</span>";
    $str = preg_replace( $pattern, $replacement, $str);
    return $str;
}
add_filter('the_content', 'mega_parse');


Выдает:
Код
Warning: preg_replace(): Unknown modifier ']' in /var/www/.../functions.php on line 124



Если:
Код
$pattern = '<a href="https://mega.co.nz([^>]+)>([^<]+)</a>';

то
Код
Warning: preg_replace(): Unknown modifier ']' in /var/www/.../functions.php on line 124


Если:
Код
$pattern = '<a href="https://mega\.co\.nz/#!.+?</a>';

то
Код
Warning: preg_replace(): No ending matching delimiter '>' found in /var/www/.../functions.php on line 124
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 10.3.2014, 21:54; Ответить: x64
Сообщение #7


F.A.L.L.O.U.T.
*******

Группа: Super Moderator
Сообщений: 3427
Регистрация: 30.6.2011
Из: Железнодорожный (Балашиха)
Поблагодарили: 2749 раз
Репутация:   289  


всё верно, вы забыли ограничители регулярных выражений, неверно используете символьный класс.
Код
$str = preg_replace('!mega\.co\.nz!', '', $str);

этот код заменит все вхождения mega.co.nz на пустую строку.

Код
$pattern = "<a(.+[mega.co.nz][^>]+)>([^<]+)</a>";

синтаксис [] означает символьный класс, т. е. любой из перечисленных тут символов. при этом, точка сама по себе спецсимвол (означает буквально «любой символ»).

можно сделать так (при этом, подходящими будут ссылки, начинающиеся с http://mega.co.nz или http://mega.co.nz)
Код
$str = preg_replace('!<a.+?href="https?://mega\.co\.nz.+?</a>!', $replacement, $str);


Сообщение отредактировал x64 - 10.3.2014, 21:55


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Tollun
Tollun
сообщение 10.3.2014, 22:01; Ответить: Tollun
Сообщение #8


Старожил
******

Группа: Active User
Сообщений: 1595
Регистрация: 1.10.2009
Из: Хабаровск
Поблагодарили: 394 раза
Репутация:   66  


Код
$pattern = "#<a(.+[mega.co.nz][^>]+)>([^<]+)</a>#";


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 10.3.2014, 22:13; Ответить: x64
Сообщение #9


F.A.L.L.O.U.T.
*******

Группа: Super Moderator
Сообщений: 3427
Регистрация: 30.6.2011
Из: Железнодорожный (Балашиха)
Поблагодарили: 2749 раз
Репутация:   289  


Tollun, что вы написали?
Код
[megaconz]

означает один из символов: m, e, g, a, c, o, n или z


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Tollun
Tollun
сообщение 10.3.2014, 22:53; Ответить: Tollun
Сообщение #10


Старожил
******

Группа: Active User
Сообщений: 1595
Регистрация: 1.10.2009
Из: Хабаровск
Поблагодарили: 394 раза
Репутация:   66  


x64, не работает?
Код
$pattern = "#<a(.+mega.co.nz[^>]+)>([^<]+)</a>#";


Сообщение отредактировал Tollun - 10.3.2014, 23:04


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Регулярное наполнение новостного сайта провинциального города
15 4enki 1789 10.3.2016, 22:39
автор: 4enki
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыРезультативные прогоны Хрумером по свежесобранным базам для поднятия позиций в Yandex и Google (Выдача, тИЦ, PR)… Регулярное обновление баз.
275 Kroner 107595 23.4.2015, 11:57
автор: Kroner


 



RSS Текстовая версия Сейчас: 17.12.2017, 3:06
Дизайн