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



 

Здравствуйте, гость (

| Вход | Регистрация )

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


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


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

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


выражения
Код
<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


Код
<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


Код
<a href="https://mega\.co\.nz/#!.+?</a>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
500
500
Topic Starter сообщение 10.3.2014, 21:11; Ответить: 500
Сообщение #6


Код
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


всё верно, вы забыли ограничители регулярных выражений, неверно используете символьный класс.
Код
$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


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


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


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

означает один из символов: m, e, g, a, c, o, n или z
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Tollun
Tollun
сообщение 10.3.2014, 22:53; Ответить: Tollun
Сообщение #10


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


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


Свернуть

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

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


 



RSS Текстовая версия Сейчас: 29.3.2024, 18:01
Дизайн