1 (изменено: kamelotto, 2016-06-23 23:08:50)

Тема: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

Возможно это не так сложно, но я застрял. Уже пару часов ума не приложу, как с помощью регулярного выражения выудить ссылку из строки и поместить её в переменную Ssylka. Вот примерно такая строка:

....href="https://pp.site/2-456.jpg"...</div><a id="pv_delete" onclick="Photoview.deletePhoto()">Удалить</a><a id="pv_original" target="_blank" href="https://pp.site/2-nM_a-5-qg.jpg">Показать картинку</a><div id="pp.site"><a..... 

Ссылка располагается в теге: <a..... с текстом "Показать картинку"
То есть выудить и поместить в переменную нужно вот это:

https://pp.site/2-nM_a-5-qg.jpg

Изначально строка уже в буфере обмена.
Сам видимо не справлюсь. Нужных примеров я не нашёл. А что находил, по аналогии переделывал, не то получается.

2 (изменено: Malcev, 2016-06-23 23:25:18)

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

var=
(
....href="https://pp.site/2-456.jpg"...</div><a id="pv_delete" onclick="Photoview.deletePhoto()">Удалить</a><a id="pv_original" target="_blank" href="https://pp.site/2-nM_a-5-qg.jpg">Показать картинку</a><div id="pp.site"><a..... 
)
msgbox % RegexReplace(var, "s).*(https://.+?\.jpg)"">Показать картинку.*", "$1")

3

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

Text = ....href="https://pp.site/2-456.jpg"...</div><a id="pv_delete" onclick="Photoview.deletePhoto()">Удалить</a><a id="pv_original" target="_blank" href="https://pp.site/2-nM_a-5-qg.jpg">Показать картинку</a><div id="pp.site"><a.....
RegExMatch(Text, ".*href=""(.*)"">[А-я\w].*$", URL)
MsgBox % URL1

4

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

Malcev пишет:
var=
(
....href="https://pp.site/2-456.jpg"...</div><a id="pv_delete" onclick="Photoview.deletePhoto()">Удалить</a><a id="pv_original" target="_blank" href="https://pp.site/2-nM_a-5-qg.jpg">Показать картинку</a><div id="pp.site"><a..... 
)
msgbox % RegexReplace(var, "s).*(https://.+?\.jpg)"">Показать картинку.*", "$1")

Изначально строка уже висит в переменной clipboard =
Попробовал ваш вариант и МСБОКС выдал всю строку кода. Я поясню. Код приходится выдёргивать с помощью веб-инспектора. Из блока который листает картинки. С каждой новой картинкой, весь код (строка) меняется. Но есть одно стабильное место в коде. Это тег <a href=.....>Показать картинку</a>.
Я подумал, что можно ориентироваться на надпись "Показать картинку" и выудить саму ссылку из этого конкретного тега. В изначальной строке присутствуют и другие похожие теги со ссылками. Но мне нужна только та, что в теге с надписью "Показать картинку".

5 (изменено: Malcev, 2016-06-24 00:05:30)

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

Так пробовали?

msgbox % RegexReplace(Clipboard, "s).*(https://.+?\.jpg)"">Показать картинку.*", "$1")

Можно так ещё:

msgbox % RegexReplace(Clipboard, "s).*href=""(https?://.+?)"">Показать картинку.*", "$1")

6

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

kamelotto
Чем мой вариант не устроил?

7 (изменено: kamelotto, 2016-06-24 00:38:40)

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

Malcev

Огромное спасибо! Кажется работает. Но хоть убейте не могу понять, как. Смотрю на выражение. Пытаюсь логически объяснить, и спотыкаюсь уже в самом начале. На форуме необходима развёрнутая статья с объяснениями, как применять разные варианты и пошаговой разжёванной логикой построения этих выражений.
Ещё раз спасибо.

8 (изменено: kamelotto, 2016-06-24 00:39:36)

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

Flasher

Ваш вариант выдаёт не ссылку, а следующую строку: 
/feed?section=photos_search&amp;q=copy%3Aphoto248543639_327954652

9

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

kamelotto
Странно. А какая версия программы?

10 (изменено: kamelotto, 2016-06-24 01:36:24)

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

Flasher

У меня стоит последняя версия. Поставил позавчера на Windows 10 х64
Я думаю дело не в программе. Мне кажется, ваш скрипт тоже выудил ссылку, но не прямую, а лишь указатель на неё в своеобразном нерасшифрованном виде. Хотя это лишь предположение.
"photo248543639_327954652" это явно из базы данных этого сайта. Видимо в этом месте надо искать ссылку в базе.
Если так, то я удивлён. Это вы глубоко копнули. Жаль, до финиша не дотянулись.

11

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

kamelotto
А. Так это был не весь текст. Выданной строки же нет в той, что в первом посте. Конечно, без полноты картины может быть негожий результат. Мой код в чистом виде же работает. Или нет?

12

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

На форуме необходима развёрнутая статья с объяснениями, как применять разные варианты и пошаговой разжёванной логикой построения этих выражений.

Тут ничего сложного нету - всё дело в практике.
Ищем совпадение в переменной, сохраняем его с помощью скобок и потом заменяем им всю переменную.

13

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

Flasher

Строка вообще каждый раз меняется. Единственное стабильное место с нужной ссылкой Это тег <a href> с надписью на которую обычно нажимают мышкой.

14

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

kamelotto
А можно хотя бы 3 разных варианта привести?

15 (изменено: kamelotto, 2016-06-24 06:10:11)

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

Flasher

Хорошо. Давайте попробуем. Чем больше вариантов, тем лучше и для форума.
Оба варианта кода господина Malcev , предложенных со второго раза прекрасно работают в одной задаче, но  у меня есть ещё одна похожая.
Задача:
Строка висит в буфере обмена. Нужно извлечь ссылку из тега <a href ... > Открыть оригинал </a>. И поместить её в буфер обмена в чистом виде. Можно в любую другую переменную.

Вот вам три разных примера.
1.

<div id="pv_box" onclick="cur.pvClicked = true;">  <a class="fl_r pv_close_link" onclick="Photoview.hide(0)">Закрыть</a>  <div id="pv_summary" style="width: 600px;"><span class="summary">Фотография 11 из 77</span></div>  <div id="pv_photo_wrap" style="">    <div id="pv_tag_info" class="clear_fix" style="display: none;"></div>    <div class="no_select pv_data">      <div id="pv_tag_frame" style="display: none; left: 22px; top: 45px;"><img style="width: 604px; height: 336px;" src="https://pp.vk.me/c619830/v619830763/3802/JAdTPnxZJ9o.jpg"></div>      <div id="pv_tag_faded" style="display: none; width: 604px; height: 336px; left: 25px; top: 48px;"></div>      <div id="pv_tag_person" onmouseout="Photoview.hideTag()" style="display: none; left: 25px; top: 48px;"></div>      <div id="pv_loader" style="display: none;"></div>      <div class="pvs_hh pvs_hh_liked" id="pv_hh" style="margin-left: 291px; display: block;"><div class="pvs_hh_cover" style="opacity: 0;"><div class="pvs_hh_bg"></div><div class="pvs_hh_fg" id="pv_hh_fg" onmouseover="Photoview.hhOver(this)" onmouseout="Photoview.hhOut(this)" onmousedown="return Photoview.hhClick(this, event, 1)"></div></div></div>        <div class="pvs_actions" id="pvs_actions">           <div class="pvs_action" id="pvs_action_fs" onclick="return Photoview.fullscreen();"><div></div></div>           <div class="pvs_action pvs_action_ss" id="pvs_action_ss_plus" onclick="return Photoview.switchSize()" style="display: block;"><div></div></div>         </div>       <a onmouseout="Photoview.hideTag()" onmousedown="if (!cur.pvTagger &amp;&amp; checkEvent(event) === false) return Photoview.show(false, cur.pvIndex + 1, event);" onselectstart="return cancelEvent(event);" onclick="return checkEvent(event)" href="/photo252093763_328514677" id="pv_photo" style="height: 400px;"><img style="width: 604px; height: 336px; margin-top: 33px;" src="https://pp.vk.me/c619830/v619830763/3802/JAdTPnxZJ9o.jpg"></a>    </div>    <div class="clear_fix select_fix" id="pv_comments_data" style="display: block;">      <div class="fl_l wide_column">        <div id="pv_wide"><div id="pv_desc" style=""><div class="pv_can_edit" onclick="Photoview.editInline(event)"><span class="pv_desc_edit">Редактировать описание</span></div></div><div id="pv_microdata"></div><div id="pv_place"></div><div id="pv_tags" style="display: none">На этой фотографии: undefined</div><div id="pv_inlineedit_prg" class="fl_r progress"></div><div id="pv_date_wrap" class="fl_l">Добавлена <span id="pv_date">27 апреля 2014</span><span id="pv_date_app"></span></div><span id="pv_add_place"><span class="divider fl_l">|</span><a class="fl_l" id="pv_app_place_link" onclick="Photoview.editPlace();">Указать место</a></span><span class="divider fl_l">|</span><div id="pv_like_wrap" class="fl_l" onmouseover="Photoview.likeOver()" onmouseout="Photoview.likeOut()" onclick="Photoview.like()">  <span class="fl_l" id="pv_like_link">Мне нравится</span>  <i class="fl_l" id="pv_like_icon" style="opacity: 1"></i>  <span id="pv_like_count" class="fl_l">1</span></div><div id="pv_comments_header" class="clear " style="display: none" onclick="Photoview.comments()">  <div></div><div id="pv_comments_progress" class="progress"></div></div><div id="pv_comments" class="clear wall_module"></div></div>        <div id="pv_your_comment" class="clear clear_fix" onclick="return cancelEvent(event);">          <div id="pv_comment_header">Ваш комментарий</div>          <div class="pv_comment_cont">            <div id="emoji_block_1" class="emoji_tt_wrap emoji_expanded" style="right: -3px; display: none; margin-top: -291px; opacity: 0;"><div class="emoji_sprite emoji_pointer emoji_rpointer"></div><div class="emoji_block_cont"><div class="emoji_block_rel"><div class="emoji_sprite emoji_expand_shadow"></div><div class="emoji_sprite emoji_expand_shadow_top"></div><div class="emoji_list_cont"><div class="emoji_scrollbar_cont" style="height: 242px; right: 9px; left: auto; pointer-events: auto;"><div class="emoji_scrollbar_inner" style="height: 78px; margin-top: 2px;"></div></div><div class="emoji_list" style="height: 242px; overflow: hidden;"><div class="emoji_scroll"><a class="emoji_smile_cont emoji_smile_shadow emoji_over" title=":-)" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE0A', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE0A" false="" class="emoji_css" style="background-position: 0px 0px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title=":-D" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE03', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE03" false="" class="emoji_css" style="background-position: 0px -17px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title=";-)" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE09', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE09" false="" class="emoji_css" style="background-position: 0px -34px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title="xD" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE06', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE06" false="" class="emoji_css" style="background-position: 0px -51px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title=";-P" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE1C', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE1C" false="" class="emoji_css" style="background-position: 0px -68px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title=":-p" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE0B', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE0B" false="" class="emoji_css" style="background-position: 0px -85px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title="8-)" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE0D', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE0D" false="" class="emoji_css" style="background-position: 0px -102px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title="B-)" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE0E', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE0E" false="" class="emoji_css" style="background-position: 0px -119px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title=":-(" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE12', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE12" false="" class="emoji_css" style="background-position: 0px -136px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title=";-]" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE0F', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE0F" false="" class="emoji_css" style="background-position: 0px -153px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title="3(" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE14', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE14" false="" class="emoji_css" style="background-position: 0px -170px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title=":'(" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE22', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE22" false="" class="emoji_css" style="background-position: 0px -187px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title=":_(" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE2D', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE2D" false="" class="emoji_css" style="background-position: 0px -204px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title=":((" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE29', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE29" false="" class="emoji_css" style="background-position: 0px -221px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title=":o" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE28', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE28" false="" class="emoji_css" style="background-position: 0px -238px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title=":|" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE10', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE10" false="" class="emoji_css" style="background-position: 0px -255px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title="3-)" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE0C', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE0C" false="" class="emoji_css" style="background-position: 0px -272px;"></a><a class="emoji_smile_cont emoji_smile_shadow" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE04', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83DDE04.png"></a><a class="emoji_smile_cont emoji_smile_shadow" title="O:)" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE07', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE07" false="" class="emoji_css" style="background-position: 0px -323px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title=";o" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE30', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE30" false="" class="emoji_css" style="background-position: 0px -340px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title="8o" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE32', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE32" false="" class="emoji_css" style="background-position: 0px -374px;"></a><a class="emoji_smile_cont emoji_smile_shadow" title="8|" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDE33', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img src="/images/blank.gif" emoji="D83DDE33" false="" class="emoji_css" style="background-position: 0px -357px;"></a><a class="emoji_smile_cont emoji_smile_shadow" return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83CDFBD.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83CDFBF', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83CDFBF.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83CDFC2', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83CDFC2.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83CDFC3', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83CDFC3.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83CDFC4', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83CDFC4.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83CDFC7', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83CDFC7.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83CDFC8', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83CDFC8.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83CDFC9', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83CDFC9.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83CDFCA', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83CDFCA.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDC00', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83DDC00.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDC01', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83DDC01.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDC02', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83DDC02.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDC04', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83DDC04.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDC06', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83DDC06.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDC07', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83DDC07.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDC08', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83DDC08.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDC09', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83DDC09.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDC0A', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83DDC0A.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDC0B', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83DDC0B.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDC0C', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83DDC0C.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDC0D', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83DDC0D.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDC10', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83DDC10.png"></a><a class="emoji_smile_cont " onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDC12', this); return cancelEvent(event);" onclick="return cancelEvent(event);" onmouseover="return Emoji.emojiOver(1, this, true);"><div class="emoji_bg"></div><div class="emoji_shadow"></div><img class="emoji" src="/images/emoji/D83DDC12.png"></a></div></div></div></div><div class="emoji_tabs clear_fix"><div class="emoji_tabs_l_s" onclick="Emoji.scrollTabs(1, 0);"><div class="emoji_sprite emoji_tabs_l_sc"></div><div class="emoji_sprite emoji_tabs_l_si"></div></div><div class="emoji_tabs_r_s" onclick="Emoji.scrollTabs(1, 1);"><div class="emoji_sprite emoji_tabs_r_sc"></div><div class="emoji_sprite emoji_tabs_r_si"></div></div><a class="emoji_tab emoji_tab_0 emoji_tab_sel" onclick="return Emoji.tabSwitch(this, 0, 1);"><div class="emoji_tab_icon emoji_sprite emoji_tab_icon_0"></div></a><span class="emoji_tabs_wrap"><span id="emoji_tabs_cont_1" class="emoji_tabs_cont"><a class="emoji_tab emoji_tab_img_cont emoi_tab_3 emoji_tab_3" onclick="return Emoji.tabSwitch(this, 3, 1);"><img width="22" height="22" src="/images/store/stickers/3/thumb_22.png" class="emoji_tab_img"></a><a class="emoji_tab emoji_tab_img_cont emoi_tab_99 emoji_tab_99 emoji_tab_promo" onclick="return Emoji.previewSticker(99);"><img width="22" height="22" src="/images/store/stickers/99/thumb_22.png" class="emoji_tab_img"></a><a class="emoji_tab emoji_tab_img_cont emoi_tab_98 emoji_tab_98 emoji_tab_promo" onclick="return Emoji.previewSticker(98);"><img width="22" height="22" src="/images/store/stickers/98/thumb_22.png" class="emoji_tab_img"></a><a class="emoji_tab emoji_tab_img_cont emoi_tab_91 emoji_tab_91 emoji_tab_promo" onclick="return Emoji.previewSticker(91);"><img width="22" height="22" src="/images/store/stickers/91/thumb_22.png" class="emoji_tab_img"></a><a class="emoji_tab emoji_tab_img_cont emoi_tab_90 emoji_tab_90 emoji_tab_promo" onclick="return Emoji.previewSticker(90);"><img width="22" height="22" src="/images/store/stickers/90/thumb_22.png" class="emoji_tab_img"></a></span></span><a class="fl_r emoji_shop" onclick="Emoji.showStickersStore(1);" onmouseover="addClass(this.parentNode.parentNode.parentNode, 'emoji_shop_over');showTooltip(this, {text: 'Магазин стикеров', shift: [2,2,4], showdt: 0, black: 1});" onmouseout="removeClass(this.parentNode.parentNode.parentNode, 'emoji_shop_over');"><div class="emoji_sprite emoji_shop_icon"><div class="emoji_shop_icon_badge">2</div></div></a></div></div></div><div id="pv_reply_smile" title="reply emoji hint" class="emoji_smile fl_l" onmouseover="return Photoview.emojiShowTT(this, event);" onmouseout="return Photoview.emojiHideTT(this, event);" onmousedown="return cancelEvent(event);"><div class="emoji_smile_icon_on"></div><div class="emoji_smile_icon"></div></div>            <div class="input_back_wrap no_select"><div class="input_back" style="margin: 1px 1px 11px; padding: 3px 23px 3px 3px;"><div class="input_back_content" style="width: 374px;">Комментировать..</div></div></div><div id="pv_comment" contenteditable="true" onkeyup="Photoview.commentChanged()" onkeypress="onCtrlEnter(event, Photoview.sendComment);"></div><div class="composer_wdd clear_fix pv_composer_dd" id="pv_comment_composer_wdd"><div class="wdd_lwrap" style="display: none; width: 394px;"><div class="wdd_list"></div><div class="wdd_bottom1"></div><div class="wdd_bottom2"></div></div><input type="hidden" id="pv_comment_composer_wdd_term"></div>          </div>          <div id="pv_comment_warn"></div>          <div id="pv_media_preview" class="clear_fix multi_media_preview"><div id="page_pics_preview4" class="page_pics_preview media_preview clear_fix"></div><div id="page_dpics_preview4" class="page_pics_preview page_media_sortable media_preview clear_fix"></div><div id="page_docs_preview4" class="page_docs_preview page_media_sortable media_preview clear_fix"></div><div id="page_pdocs_preview4" class="page_docs_preview media_preview clear_fix"></div><div id="page_ldocs_preview4" class="page_docs_preview media_preview clear_fix"></div><div id="page_mpics_preview4" class="page_pics_preview media_preview clear_fix"></div><div id="page_ppdocs_preview4" class="page_docs_preview media_preview clear_fix"></div><div id="page_progress_preview4" class="page_progress_preview media_preview clear_fix"></div></div>          <div id="pv_comment_submit">            <button class="flat_button fl_l" id="pv_comment_send">Отправить</button>            <div id="pv_reply_as_group" class="checkbox fl_l" onclick="checkbox(this)" style="display: none;"><div></div>от имени сообщества</div>            <div id="pv_reply_to_title" class="fl_l"></div>            <div id="pv_del_reply_to" class="fl_l" onclick="Photoview.commentTo()"></div>            <div id="pv_add_media" class="fl_r">              <span class="add_media_lnk">Прикрепить</span>            </div>          </div>        </div>      </div>      <div class="fl_r narrow_column" id="pv_narrow"><div id="pv_author_block" class="clear_fix"><a href="/id252093763"><img id="pv_author_img" src="https://pp.vk.me/c620022/v620022763/2886/H4wvO9uf6ps.jpg"></a><div id="pv_author_info"> <div id="pv_author_name"><a class="mem_link" href="/id252093763">Олег Друг</a></div><div id="pv_album_name"><a href="album252093763_00" onclick="return nav.go(this, event)">Фотографии на моей стене</a></div> </div></div><div id="pv_actions"><a id="pv_tag_link" onclick="stManager.add(['phototag.js', 'phototag.css', 'tagger.css', 'tagger.js'], function() { Phototag.startTag(); })">Отметить человека</a><a id="pv_share" onclick="Photoview.sendPhoto()">Поделиться</a><div class="idd_wrap" id="pv_edit_actions" data-items="[[&quot;pe&quot;,&quot;Фоторедактор&quot;],[&quot;place&quot;,&quot;Указать место&quot;],[&quot;to_profile&quot;,&quot;Сделать фотографией профиля&quot;],[&quot;rotate_ccw&quot;,&quot;Повернуть влево&quot;],[&quot;rotate_cw&quot;,&quot;Повернуть вправо&quot;]]"><div class="idd_selected_value idd_arrow">Действия</div><input type="hidden" name="pv_edit_actions"></div><a id="pv_delete" onclick="Photoview.deletePhoto()">Удалить</a><a id="pv_open_original" target="_blank" href="https://pp.vk.me/c619830/v619830763/3804/k-mn9Sp7LBY.jpg">Открыть оригинал</a><div id="pv_rotate"><form method="POST" target="pv_rotate_frame" name="pv_rotate_form" id="pv_rotate_form"></form></div></div></div>    </div>  </div>  <div id="pv_albums_wrap" style="display: none"></div>  <div id="pv_album_wrap" style="display: none"></div>  <div id="pv_vtagged_wrap" style="display: none"></div></div>

2.

<div id="pv_box" onclick="cur.pvClicked = true;">  <a class="fl_r pv_close_link" onclick="Photoview.hide(0)">Закрыть</a>  <div id="pv_summary" style="width: 600px;"><span class="summary">Фотография 22 из 2291</span></div>  <div id="pv_photo_wrap">    <div id="pv_tag_info" class="clear_fix" style="display: none;"></div>    <div class="no_select pv_data">      <div id="pv_tag_frame" style="display: none; left: 22px; top: 12px;"><img style="width: 604px; height: 481px;" src="https://pp.vk.me/c630425/v630425151/155e7/3paZTFApO9g.jpg"></div>      <div id="pv_tag_faded" style="display: none; width: 604px; height: 481px; left: 25px; top: 15px;"></div>      <div id="pv_tag_person" onmouseout="Photoview.hideTag()" style="display: none; left: 25px; top: 15px;"></div>      <div id="pv_loader" style="display: none;"></div>      <div class="pvs_hh" id="pv_hh" style="margin-left: 291px; display: block;"><div class="pvs_hh_cover" style="opacity: 0;"><div class="pvs_hh_bg"></div><div class="pvs_hh_fg" id="pv_hh_fg" onmouseover="Photoview.hhOver(this)" onmouseout="Photoview.hhOut(this)" onmousedown="return Photoview.hhClick(this, event, 1)"></div></div></div>        <div class="pvs_actions" id="pvs_actions">           <div class="pvs_action" id="pvs_action_fs" onclick="return Photoview.fullscreen();"><div></div></div>           <div class="pvs_action pvs_action_ss" id="pvs_action_ss_plus" onclick="return Photoview.switchSize()"><div></div></div>         </div>       <a onmouseout="Photoview.hideTag()" onmousedown="if (!cur.pvTagger &amp;&amp; checkEvent(event) === false) return Photoview.show(false, cur.pvIndex + 1, event);" onselectstart="return cancelEvent(event);" onclick="return checkEvent(event)" href="/photo62603151_400327260" id="pv_photo" style="height: 481px;"><img style="width: 604px; height: 481px; margin-top: 0px;" src="https://pp.vk.me/c630425/v630425151/155e7/3paZTFApO9g.jpg"></a>    </div>    <div class="clear_fix select_fix" id="pv_comments_data" style="display: block;">      <div class="fl_l wide_column">        <div id="pv_wide"><div id="pv_desc" style=""><div class="pv_cant_edit">Вопрос:<br>"Если человек покаялся, старается жить по слову, но в прошлом хотел покончить жизнь самоубийством (часто думал об этом), в нем может (еще) быть бес или возможно, что он вышел при покаянии? Спасибо!"<br><br>Если покаяние было искренним, то бес вышел из человека в момент покаяния, и он больше не вернется, если человек будет жить праведно, по Слову, ежедневно следуя за Иисусом в чистоте и святости. Но здесь важно, чтобы после покаяния человек в корне изменил свою жизнь, чтобы больше никогда не возвращался к своим прежним грехам, чтобы больше не принимал мысли о самоубийстве, потому что если человек после покаяния вновь вернётся к своей прежней греховной жизни и снова начнёт размышлять о самоубийстве - то бес вернётся, но вернётся уже не один, а возьмёт с собой еще семь других бесов, злейших себя, и тогда духовное состояние человека станет хуже, чем было до покаяния. Самое главное - после первого покаяния необходимо в корне изменить свою жизнь согласно Слову Божьему, ежедневно прикладывать усилия для собственного духовного роста, отречься от всех без исключения грехов, ежедневно искать Бога всем сердцем и каждый день укрепляться в Боге, - и только тогда можно быть уверенным в том, что бес вышел, и что эта душа ему больше не принадлежит. Если после первого покаяния человек чувствует в себе силы противостоять греху твердой верой, если всякий грех перестает казаться человеку привлекательным, если человека больше не преследуют мысли о суициде, и если человек чувствует, что его сознание стало чистым и душа стала всецело свободной от власти греха - то это свидетельствует о том, что бес вышел. Если же после покаяния человека продолжают преследовать навязчивые мысли о самоубийстве, которые трудно отогнать от себя - то это может свидетельствовать о том, что бес не вышел при покаянии (возможно, покаяние было не искренним); либо вышел в момент покаяния, но позднее вернулся (такое бывает в тех случаях, когда человек покаялся, начал жить праведно, но впоследствии вернулся к каким-либо грехам, мелким или крупным).<br>Как узнать, есть ли в человеке бес, или он вышел? Бесы обычно выявляются при искренней продолжительной молитве, совмещённой с постом. Нужно взять пост, и во время поста проводить искреннюю многочасовую коленопреклоненную молитву, при этом внимательно следя за тем, что в это время происходит на духовном плане, и на физическом (движение в животе, ком в горле, отрыжка, кашель, чихание, непроизвольное подергивание пальцев рук и ног, икота, затрудненное дыхание, ощущение что что-то стоит поперек горла и мешает дышать, необъяснимая резко возникающая боль в разных частях тела, головокружение, потемнение в глазах, звон в ушах). Это всё - и есть проявления бесов в теле человека. Демонические активности всегда переходят с души на тело, и если душа несвободна от влияния бесов, то это всегда будет отражаться также и на теле (на состоянии здоровья человека, на его самочувствии). Вот только так и можно выявить беса. Только постом и молитвой выявляются бесы. Только так можно узнать, есть ли в человеке бес, или он вышел.<br>Что делать, если бес всё-таки проявляется в теле человека (подаёт признаки своего присутствия)? В таком случае, прежде всего, необходимо совершенствовать свою духовную жизнь, всерьёз размышлять над тем, какие грехи всё еще имеют власть над душой и телом, и искоренять эти грехи из собственной жизни, отрекаться от всего того, что может хоть как-то отделять душу человека от Бога, искоренять все вредные привычки, страсти, зависимости, более усердно изучать Слово, чтобы следовать за Иисусом в чистоте и святости, всецело исполняя Его волю, чаще брать пост, больше времени проводить в молитве, совершенствовать положительные качества своей души (смирение, кротость, милосердие), стараться не гневаться, не осуждать, не раздражаться. Гнев, осуждение и раздражение открывают душу для подселения бесов, снимают с души Божью защиту, и так, через эти страсти бес может зайти в человека. Также нужно бороться и с другими грехами, мелкими и крупными, не допускать никаких грехов в своей жизни. При по-настоящему праведной жизни - бес выйдет из человека. Слово Божье призывает каждого человека стремиться к духовной святости, и если человек сможет достичь этого высшего духовного состояния, то тогда он сам сможет сказать со стопроцентной уверенностью, что беса в нём больше нет (святость опаляет бесов, и они все выходят из человека, вплоть до самых мелких бесов). Поэтому нужно ежедневно работать над собой, возрастать духовно, освящая свою душу и искореняя из души грехи и страсти. При достижении определённого духовного уровня - бес выйдет. Приложив определённые духовные усилия, человек может самостоятельно изгнать из своей души всех бесов за короткое время - от двух недель до нескольких месяцев, в зависимости от степени одержимости и тяжести прежних грехов, в которых человек покаялся. Период духовного очищения проходят большинство впервые покаявшихся людей, хотя некоторых Господь очищает сразу, по Величайшей Своей Милости. Однако бес самоубийства - очень сильный и злой бес, он будет до последнего держаться в человеке, и искать зацепки, чтобы не выходить из него, поэтому, скорее всего, придётся приложить собственные духовные усилия для его изгнания, и на это понадобится какое-то время, за которое человеку нужно жить духовной жизнью, и вести войну с бесом, который его одолевает. Оружие против нечистой силы - пост, молитва, покаяние, земные поклоны, праведная жизнь. Если собственными усилиями изгнать беса не получается - то тогда нужно ехать к экзорцисту.<br>В повседневной жизни, без особого духовного подвига, бесы внутри человека могут никак не проявляться, но при этом невидимо пакостить человеку, и делать через него разные плохие вещи, толкать на грехи, на злословие, на грубость в сложных жизненных ситуациях, внушать греховные помыслы, говорить устами человека плохие слова, а человек при этом не будет даже понимать, что он одержим. Поэтому нужно любой ценой выявить беса и изгнать его. В противном случае бес может остаться в человеке, и в конечном итоге затащить его в вечную погибель. Да, я могу предположить, что, возможно, бес вышел при покаянии, но, не зная жизни человека и искренности его покаяния, я не могу утверждать это на 100%. Бес самоубийства - очень злой и сильный бес, он очень трудно изгоняется, он может вернуться если человек после покаяния снова начнёт жаловаться на свою жизнь и роптать, - и, вернувшись, он вновь начнёт нашептывать человеку мысли о самоубийстве. Поэтому, в любом случае, нужно выявлять бесов постом и молитвой, и если бес проявляется, то надо предпринимать решительные действия для его изгнания, и ни в коем случае не тянуть время, т.к. нечистая сила использует каждую секунду для того чтобы погубить души людей, каждую минуту строит людям коварные планы и расставляет невидимые сети, в духовном мире прямо сейчас идёт битва за человеческие души, поэтому в духовной жизни нужно быть решительнее! Например, бесы будут внушать человеку: "Возьмешь пост через неделю или через месяц! Куда тебе торопиться?".. А за это время, пока человек будет тянуть время - бесы будут усиленно строить для человека план его погибели, и всячески разрушать его душу всевозможными грехами, которые человек и сам не будут замечать. Так некоторых людей бесы доводят до полного осквернения души, и до поста дело у них так и не доходит. Других - и вовсе лишают жизни, подстраивая им аварии на дорогах и несчастные случаи, и эти души идут в Ад со всеми своими неизжитыми страстями и неизгнанными бесами. Поэтому, в духовной жизни нужно быть решительнее, нельзя откладывать пост и молитву на потом, если Господь даёт этот день, то нужно пользоваться этой уникальной возможностью посвятить этот день своей жизни для духовного очищения, и начинать борьбу с бесами прямо сегодня, использовать каждый свой день для духовного роста и совершенствования души, помня о том, что за чертой смерти духовное очищение уже невозможно...</div></div><div id="pv_microdata"></div><div id="pv_place"></div><div id="pv_tags" style="display: none">На этой фотографии: undefined</div><div id="pv_inlineedit_prg" class="fl_r progress"></div><div id="pv_date_wrap" class="fl_l">Добавлена <span id="pv_date">12 февраля 2016</span><span id="pv_date_app"></span></div><span class="divider fl_l">|</span><div id="pv_like_wrap" class="fl_l" onmouseover="Photoview.likeOver()" onmouseout="Photoview.likeOut()" onclick="Photoview.like()">  <span class="fl_l" id="pv_like_link">Мне нравится</span>  <i class="fl_l" id="pv_like_icon" style="opacity: 0.4"></i>  <span id="pv_like_count" class="fl_l">12</span></div><div id="pv_comments_header" class="clear " style="display: none" onclick="Photoview.comments()">  <div></div><div id="pv_comments_progress" class="progress"></div></div><div id="pv_comments" class="clear wall_module"></div></div>        <div id="pv_your_comment" class="clear clear_fix" onclick="return cancelEvent(event);" style="display: none;">          <div id="pv_comment_header">Ваш комментарий</div>          <div class="pv_comment_cont">            <div id="pv_reply_smile" title="reply emoji hint" class="emoji_smile fl_l" onmouseover="return Photoview.emojiShowTT(this, event);" onmouseout="return Photoview.emojiHideTT(this, event);" onmousedown="return cancelEvent(event);"><div class="emoji_smile_icon_on"></div><div class="emoji_smile_icon"></div></div>            <div class="input_back_wrap no_select"><div class="input_back" style="margin: 1px 1px 11px; padding: 3px 23px 3px 3px;"><div class="input_back_content" style="width: -20px;">Комментировать..</div></div></div><div id="pv_comment" contenteditable="true" onkeyup="Photoview.commentChanged()" onkeypress="onCtrlEnter(event, Photoview.sendComment);"></div>          </div>          <div id="pv_comment_warn"></div>          <div id="pv_media_preview" class="clear_fix"></div>          <div id="pv_comment_submit">            <button class="flat_button fl_l" id="pv_comment_send">Отправить</button>            <div id="pv_reply_as_group" class="checkbox fl_l" onclick="checkbox(this)"><div></div>от имени сообщества</div>            <div id="pv_reply_to_title" class="fl_l"></div>            <div id="pv_del_reply_to" class="fl_l" onclick="Photoview.commentTo()"></div>            <div id="pv_add_media" class="fl_r">              <span class="add_media_lnk">Прикрепить</span>            </div>          </div>        </div>      </div>      <div class="fl_r narrow_column" id="pv_narrow"><div id="pv_author_block" class="clear_fix"><a href="/pasha392"><img id="pv_author_img" src="https://pp.vk.me/c315531/v315531151/bfeb/uAqSoO8ltCU.jpg"></a><div id="pv_author_info"> <div id="pv_author_name"><a class="mem_link" href="/pasha392">Паша Харьковский</a></div><div id="pv_album_name"><a href="album62603151_00" onclick="return nav.go(this, event)">Фотографии на стене Паши</a></div> </div></div><div id="pv_actions"><a id="pv_tag_link" onclick="stManager.add(['phototag.js', 'phototag.css', 'tagger.css', 'tagger.js'], function() { Phototag.startTag(); })">Отметить человека</a><a id="pv_share" onclick="Photoview.sendPhoto()">Поделиться</a><a id="pv_save_to_me" onclick="Photoview.savePhoto()">Сохранить к себе</a><a id="pv_open_original" target="_blank" href="https://pp.vk.me/c630425/v630425151/155e9/2dJn6Ygtm4o.jpg">Открыть оригинал</a><div class="idd_wrap" id="pv_report" data-items="[[0,&quot;Это спам&quot;],[6,&quot;Оскорбление&quot;],[5,&quot;Материал для взрослых&quot;],[4,&quot;Пропаганда наркотиков&quot;],[1,&quot;Детская порнография&quot;],[3,&quot;Насилие / экстремизм&quot;]]"><div class="idd_selected_value idd_arrow">Пожаловаться</div><input type="hidden" name="pv_report"></div><div id="pv_rotate"><form method="POST" target="pv_rotate_frame" name="pv_rotate_form" id="pv_rotate_form"></form></div></div></div>    </div>  </div>  <div id="pv_albums_wrap" style="display: none;"><input type="hidden" id="pva_owner" value="62603151">
<input type="hidden" id="pva_scroll" value="400">
<div id="pva_wrap">
  <div id="pva_content" class="clear_fix"><div class="pva_row" id="album62603151_0" onmouseover="Photoview.thumbOver(this, '62603151_0');" onmouseout="Photoview.thumbOut(this, '62603151_0');"><div class="cont">
    <a href="/album62603151_0?rev=1" onclick="return showPhoto('62603151_303544237', 'album62603151_0/rev', {&quot;temp&quot;:{&quot;base&quot;:&quot;https://pp.vk.me/c315531/v315531151/&quot;,&quot;x_&quot;:[&quot;a1e3/wVoEVJtjTVU&quot;,604,453],&quot;y_&quot;:[&quot;a1e4/EOzIbZNaobE&quot;,807,605],&quot;z_&quot;:[&quot;a1e5/aNyf6ar2P40&quot;,1280,960]}, jumpTo: {z: 'albums62603151'}}, event)" class="pva_link ">
      <img class="pva_img" src="https://pp.vk.me/c315531/v315531151/a1e3/wVoEVJtjTVU.jpg">
      <div class="pva_title">
        <div class="clear_fix">
          <div class="pva_title_text fl_l" title="Фотографии со страницы Паши">Фотографии со страницы Паши</div>
          <div class="pva_camera fl_r">4</div>
        </div>
        <div class="pva_desc"></div>
      </div>
    </a>
  </div>
</div><div class="pva_row" id="album62603151_00" onmouseover="Photoview.thumbOver(this, '62603151_00');" onmouseout="Photoview.thumbOut(this, '62603151_00');"><div class="cont">
    <a href="/album62603151_00?rev=1" onclick="return showPhoto('62603151_417309941', 'album62603151_00/rev', {&quot;temp&quot;:{&quot;base&quot;:&quot;https://pp.vk.me/c626128/v626128151/&quot;,&quot;x_&quot;:[&quot;f2b9/Jp3FT7hZYQs&quot;,604,340],&quot;y_&quot;:[&quot;f2ba/QPaIMJaLH4E&quot;,807,454],&quot;z_&quot;:[&quot;f2bb/a9jSJTU5-B8&quot;,1280,720]}, jumpTo: {z: 'albums62603151'}}, event)" class="pva_link ">
      <img class="pva_img" src="https://pp.vk.me/c626128/v626128151/f2b9/Jp3FT7hZYQs.jpg">
      <div class="pva_title">
        <div class="clear_fix">
          <div class="pva_title_text fl_l" title="Фотографии на стене Паши">Фотографии на стене Паши</div>
          <div class="pva_camera fl_r">1170</div>

</a></div><div class="pva_photo"><a href="/photo62603151_350981256?all=1" onclick="return showPhoto('62603151_350981256', 'photos62603151', {&quot;temp&quot;:{&quot;base&quot;:&quot;https://pp.vk.me/c622719/v622719151/&quot;,&quot;x_&quot;:[&quot;16819/Qk1iMhXwOtE&quot;,604,453],&quot;y_&quot;:[&quot;1681a/6n1_1cfoF-g&quot;,807,605],&quot;z_&quot;:[&quot;1681b/E02KeE9-17g&quot;,1280,960]}, jumpTo: {z: 'albums62603151'}}, event)" class="pva_photo_link">
  <img class="pva_photo_img" src="https://pp.vk.me/c622719/v622719151/1681c/saarcBS0YVc.jpg">
</a></div><div class="pva_photo"><a href="/photo62603151_350981255?all=1" onclick="return showPhoto('62603151_350981255', 'photos62603151', {&quot;temp&quot;:{&quot;base&quot;:&quot;https://pp.vk.me/c622719/v622719151/&quot;,&quot;x_&quot;:[&quot;16812/GOTaRZ591dc&quot;,600,450]}, jumpTo: {z: 'albums62603151'}}, event)" class="pva_photo_link">
  <img class="pva_photo_img" src="https://pp.vk.me/c622719/v622719151/16813/Vh3vUSnOcVg.jpg">
</a></div><div class="pva_photo"><a href="/photo62603151_350981254?all=1" onclick="return showPhoto('62603151_350981254', 'photos62603151', {&quot;temp&quot;:{&quot;base&quot;:&quot;https://pp.vk.me/c622719/v622719151/&quot;,&quot;x_&quot;:[&quot;16809/ZrUn-_FMA8o&quot;,604,453],&quot;y_&quot;:[&quot;1680a/FKdggxcEfSw&quot;,807,605],&quot;z_&quot;:[&quot;1680b/FX3U9wces0c&quot;,1280,960]}, jumpTo: {z: 'albums62603151'}}, event)" class="pva_photo_link">
  <img class="pva_photo_img" src="https://pp.vk.me/c622719/v622719151/1680c/8yM64HjTgKE.jpg">
</a></div><div class="pva_photo"><a href="/photo62603151_350981253?all=1" onclick="return showPhoto('62603151_350981253', 'photos62603151', {&quot;temp&quot;:{&quot;base&quot;:&quot;https://pp.vk.me/c622719/v622719151/&quot;,&quot;x_&quot;:[&quot;16800/3Z7LMCFyY4Y&quot;,604,453],&quot;y_&quot;:[&quot;16801/Iko9R4PaaGI&quot;,807,605],&quot;z_&quot;:[&quot;16802/OHR4pf6Vcak&quot;,1280,960]}, jumpTo: {z: 'albums62603151'}}, event)" class="pva_photo_link">
  <img class="pva_photo_img" src="https://pp.vk.me/c622719/v622719151/16803/DdLi65tYqf0.jpg">
</a></div><div class="pva_photo"><a href="/photo62603151_350562248?all=1" onclick="return showPhoto('62603151_350562248', 'photos62603151', {&quot;temp&quot;:{&quot;base&quot;:&quot;https://pp.vk.me/c622719/v622719151/&quot;,&quot;x_&quot;:[&quot;15dd8/liGBFqwyqtQ&quot;,604,378],&quot;y_&quot;:[&quot;15dd9/erG_PVchj1s&quot;,807,505],&quot;z_&quot;:[&quot;15dda/twPZ0FeYMn4&quot;,1280,801]}, jumpTo: {z: 'albums62603151'}}, event)" class="pva_photo_link">
  <img class="pva_photo_img" src="https://pp.vk.me/c622719/v622719151/15ddc/pOTNb_MnMgA.jpg">
</a></div><div class="pva_photo"><a href="/photo62603151_350562221?all=1" onclick="return showPhoto('62603151_350562221', 'photos62603151', {&quot;temp&quot;:{&quot;base&quot;:&quot;https://pp.vk.me/c622719/v622719151/&quot;,&quot;x_&quot;:[&quot;15dd1/Hy1R_OjGWOg&quot;,600,410]}, jumpTo: {z: 'albums62603151'}}, event)" class="pva_photo_link">
  <img class="pva_photo_img" src="https://pp.vk.me/c622719/v622719151/15dd2/qgYK-DeYstI.jpg">
</a></div><div class="pva_photo"><a href="/photo62603151_350562220?all=1" onclick="return showPhoto('62603151_350562220', 'photos62603151', {&quot;temp&quot;:{&quot;base&quot;:&quot;https://pp.vk.me/c622719/v622719151/&quot;,&quot;x_&quot;:[&quot;15dc7/scVb9B7twn8&quot;,604,492],&quot;y_&quot;:[&quot;15dc8/zSTMkOdrZFg&quot;,807,658],&quot;z_&quot;:[&quot;15dc9/RDAAecn8H3I&quot;,1256,1024]}, jumpTo: {z: 'albums62603151'}}, event)" class="pva_photo_link">
  <img class="pva_photo_img" src="https://pp.vk.me/c622719/v622719151/15dcb/gHj6-IBvdqI.jpg">
</a></div></div>
<a id="pva_more_photos" onclick="Photoview.loadAlbumsPhotos()" style=""><span style="display: inline;">Показать больше фотографий</span>
  <div id="pva_more_photos_prg" class="progress" style="display: none;"></div>
</a>
</div></div>  <div id="pv_album_wrap" style="display: none"></div>  <div id="pv_vtagged_wrap" style="display: none"></div></div>

3.

<div id="pv_box" onclick="cur.pvClicked = true;">  <a class="fl_r pv_close_link" onclick="Photoview.hide(0)">Закрыть</a>  <div id="pv_summary" style="width: 600px;"><span class="summary">Фотография 3 из 29172</span></div>  <div id="pv_photo_wrap" style="">    <div id="pv_tag_info" class="clear_fix" style="display: none;"></div>    <div class="no_select pv_data">      <div id="pv_tag_frame" style="display: none; left: 22px; top: 12px;"><img style="width: 604px; height: 453px;" src="https://pp.vk.me/c633727/v633727281/309fe/_hOsBHDK_jA.jpg"></div>      <div id="pv_tag_faded" style="display: none; width: 604px; height: 453px; left: 25px; top: 15px;"></div>      <div id="pv_tag_person" onmouseout="Photoview.hideTag()" style="display: none; left: 25px; top: 15px;"></div>      <div id="pv_loader" style="display: none;"></div>      <div class="pvs_hh" id="pv_hh" style="margin-left: 291px; display: block;"><div class="pvs_hh_cover" style="opacity: 0;"><div class="pvs_hh_bg"></div><div class="pvs_hh_fg" id="pv_hh_fg" onmouseover="Photoview.hhOver(this)" onmouseout="Photoview.hhOut(this)" onmousedown="return Photoview.hhClick(this, event, 1)"></div></div></div>        <div class="pvs_actions visible" id="pvs_actions">           <div class="pvs_action" id="pvs_action_fs" onclick="return Photoview.fullscreen();"><div></div></div>           <div class="pvs_action pvs_action_ss" id="pvs_action_ss_plus" onclick="return Photoview.switchSize()"><div></div></div>         </div>       <a onmouseout="Photoview.hideTag()" onmousedown="if (!cur.pvTagger &amp;&amp; checkEvent(event) === false) return Photoview.show(false, cur.pvIndex + 1, event);" onselectstart="return cancelEvent(event);" onclick="return checkEvent(event)" href="/photo6268281_421740372" id="pv_photo" style="height: 453px;"><img style="width: 604px; height: 453px; margin-top: 0px;" src="https://pp.vk.me/c633727/v633727281/309fe/_hOsBHDK_jA.jpg"></a>    </div>    <div class="clear_fix select_fix" id="pv_comments_data" style="display: block;">      <div class="fl_l wide_column">        <div id="pv_wide"><div id="pv_desc" style="display: none"><div class="pv_cant_edit"><span class="pv_desc_edit">Редактировать описание</span></div></div><div id="pv_microdata"></div><div id="pv_place"></div><div id="pv_tags" style="display: none">На этой фотографии: undefined</div><div id="pv_inlineedit_prg" class="fl_r progress"></div><div id="pv_date_wrap" class="fl_l">Добавлена <span id="pv_date">19 июня 2016</span><span id="pv_date_app"></span></div><span class="divider fl_l">|</span><div id="pv_like_wrap" class="fl_l" onmouseover="Photoview.likeOver()" onmouseout="Photoview.likeOut()" onclick="Photoview.like()">  <span class="fl_l" id="pv_like_link">Мне нравится</span>  <i class="fl_l" id="pv_like_icon" style="opacity: 0.4"></i>  <span id="pv_like_count" class="fl_l">1</span></div><div id="pv_comments_header" class="clear " style="display: none" onclick="Photoview.comments()">  <div></div><div id="pv_comments_progress" class="progress"></div></div><div id="pv_comments" class="clear wall_module"></div></div>        <div id="pv_your_comment" class="clear clear_fix" onclick="return cancelEvent(event);">          <div id="pv_comment_header">Ваш комментарий</div>          <div class="pv_comment_cont">            <div id="pv_reply_smile" title="reply emoji hint" class="emoji_smile fl_l" onmouseover="return Photoview.emojiShowTT(this, event);" onmouseout="return Photoview.emojiHideTT(this, event);" onmousedown="return cancelEvent(event);"><div class="emoji_smile_icon_on"></div><div class="emoji_smile_icon"></div></div>            <div class="input_back_wrap no_select"><div class="input_back" style="margin: 1px 1px 11px; padding: 3px 23px 3px 3px;"><div class="input_back_content" style="width: -20px;">Комментировать..</div></div></div><div id="pv_comment" contenteditable="true" onkeyup="Photoview.commentChanged()" onkeypress="onCtrlEnter(event, Photoview.sendComment);"></div><div class="composer_wdd clear_fix pv_composer_dd" id="pv_comment_composer_wdd"><div class="wdd_lwrap" style="display: none; width: 394px;"><div class="wdd_list"></div><div class="wdd_bottom1"></div><div class="wdd_bottom2"></div></div><input type="hidden" id="pv_comment_composer_wdd_term"></div>          </div>          <div id="pv_comment_warn"></div>          <div id="pv_media_preview" class="clear_fix multi_media_preview"><div id="page_pics_preview6" class="page_pics_preview media_preview clear_fix"></div><div id="page_dpics_preview6" class="page_pics_preview page_media_sortable media_preview clear_fix"></div><div id="page_docs_preview6" class="page_docs_preview page_media_sortable media_preview clear_fix"></div><div id="page_pdocs_preview6" class="page_docs_preview media_preview clear_fix"></div><div id="page_ldocs_preview6" class="page_docs_preview media_preview clear_fix"></div><div id="page_mpics_preview6" class="page_pics_preview media_preview clear_fix"></div><div id="page_ppdocs_preview6" class="page_docs_preview media_preview clear_fix"></div><div id="page_progress_preview6" class="page_progress_preview media_preview clear_fix"></div></div>          <div id="pv_comment_submit">            <button class="flat_button fl_l" id="pv_comment_send">Отправить</button>            <div id="pv_reply_as_group" class="checkbox fl_l" onclick="checkbox(this)" style="display: none;"><div></div>от имени сообщества</div>            <div id="pv_reply_to_title" class="fl_l"></div>            <div id="pv_del_reply_to" class="fl_l" onclick="Photoview.commentTo()"></div>            <div id="pv_add_media" class="fl_r">              <span class="add_media_lnk">Прикрепить</span>            </div>          </div>        </div>      </div>      <div class="fl_r narrow_column" id="pv_narrow"><div id="pv_author_block" class="clear_fix"><a href="/lybov_i_radost"><img id="pv_author_img" src="https://pp.vk.me/c628130/v628130281/20f6e/grO4ALdbtj8.jpg"></a><div id="pv_author_info"> <div id="pv_author_name"><a class="mem_link" href="/lybov_i_radost">Яша Васильев</a></div><div id="pv_album_name"><a href="album6268281_00" onclick="return nav.go(this, event)">Фотографии на стене Яши</a></div> </div></div><div id="pv_actions"><a id="pv_tag_link" onclick="stManager.add(['phototag.js', 'phototag.css', 'tagger.css', 'tagger.js'], function() { Phototag.startTag(); })">Отметить человека</a><a id="pv_share" onclick="Photoview.sendPhoto()">Поделиться</a><a id="pv_save_to_me" onclick="Photoview.savePhoto()">Сохранить к себе</a><a id="pv_open_original" target="_blank" href="https://pp.vk.me/c633727/v633727281/30a01/ogpRH2NfZKQ.jpg">Открыть оригинал</a><div class="idd_wrap" id="pv_report" data-items="[[0,&quot;Это спам&quot;],[6,&quot;Оскорбление&quot;],[5,&quot;Материал для взрослых&quot;],[4,&quot;Пропаганда наркотиков&quot;],[1,&quot;Детская порнография&quot;],[3,&quot;Насилие / экстремизм&quot;]]"><div class="idd_selected_value idd_arrow">Пожаловаться</div><input type="hidden" name="pv_report"></div><div id="pv_rotate"><form method="POST" target="pv_rotate_frame" name="pv_rotate_form" id="pv_rotate_form"></form></div></div></div>    </div>  </div>  <div id="pv_albums_wrap" style="display: none"></div>  <div id="pv_album_wrap" style="display: none"></div>  <div id="pv_vtagged_wrap" style="display: none"></div></div>

16

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

kamelotto

RegExMatch(clipboard, ".*href=""(h[^>]*)"">", clip)
clipboard = % clip1

17

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

Flasher
Вы видимо не поняли, что код меняется каждый раз. Тысячи новых и новых вариантов. Но каждый раз в коде есть место: тег  <a href = "НУЖНАЯ НАМ ССЫЛКА">Открыть оригинал </a>
Надпись "Открыть оригинал", в данных примерах, единственный повторяющийся стабильный ориентир.
Нам нужна ссылка только из этого тега.
попробовал ваш вариант в живой работе и получил следующее;

http://images.yandex.ru/yandsearch?rpt=imagecbir&amp;img_url=https://pp.vk.me/c613425/v613425627/cc30/2-nM_a-5-qg.jpg

А нужно было вот это:

https://pp.vk.me/c613425/v613425627/cc30/2-nM_a-5-qg.jpg

Но вы всё равно на верном пути. Только откуда-то прирос к ссылке лишний кусок кода спереди (слева).

18 (изменено: Flasher, 2016-06-25 15:18:59)

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

kamelotto
Кажется, это вы не поняли. В полученной строке видно, что никакого <a href = " перед нужным адресом нет, а есть ;img_url=, что совсем не одно и то же. Мой код работает со всеми приведёнными ранее вариантами. А этот уже имеет дополнительные условия.

RegExMatch(clipboard, ".*href="".*(https?://[^>]+)"">", clip)
clipboard = % clip1

19

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

Flasher
В том то и дело,что код и дополнительные условия в нём не предсказуемо меняются. Нужен более универсальный вариант.

20

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

RegExMatch(Clipboard, "U)<a.*href=""(http.*)"">Открыть оригинал</a>", match)
MsgBox, % Clipboard := match1

Или так:

MsgBox, % Clipboard := RegExReplace(Clipboard, "s).*<a.*?href=""(http.*?)"">Открыть оригинал</a>.*", "$1")
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

21

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

kamelotto
Пока что мой последний работает со всеми выше предложенными. Непредсказуемость - дело тонкое. Мало ли какие ещё могут нюансы всплыть.

22 (изменено: kamelotto, 2016-06-25 04:29:57)

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

Flasher
Согласен. Пока работает.
Итак у нас ПЯТЬ вариантов решения этой задачи.
Все пять пока достаточно универсально себя показывают.
Однако интересно, как вы смогли обойтись без ориентира "Открыть оригинал"?
Какова логика построения последнего Вашего варианта?

23

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

teadrinker

Спасибо Вам за ваше решение. Работают оба варианта.

24

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

kamelotto пишет:

Какова логика построения последнего Вашего варианта?

Присоединяюсь к вопросу. И если она есть, то почему не так:

RegExMatch(clipboard, ".*(ht.+?)"">", clip)
MsgBox, % clip1
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

25

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

Пока что мой последний работает со всеми выше предложенными.

Ненадёжно:

var =
(
....href="https://pp.vk.me/https.jpg">Открыть оригинал</a>
)
RegExMatch(var, ".*href="".*(https[^>]+)"">", clip)
msgbox % clip1

26

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

kamelotto пишет:

Однако интересно, как вы смогли обойтись без ориентира "Открыть оригинал"?

Все приведённые куски имеют только одну комбинацию с href="http", поэтому в качестве замыкания достаточно искать ">.

Malcev пишет:

Ненадёжно:

ОК. Сделал понадёжней.

27

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

Flasher пишет:
Malcev пишет:

Ненадёжно:

ОК. Сделал понадёжней.

Если сделали по надёжней, может покажите окончательный вариант?

28

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

Malcev пишет:

Пока что мой последний работает со всеми выше предложенными.

Ненадёжно:

var =
(
....href="https://pp.vk.me/https.jpg">Открыть оригинал</a>
)
RegExMatch(var, ".*href="".*(https[^>]+)"">", clip)
msgbox % clip1

Да. Не работает. Действительно не надёжно.

29

Re: AHK: Регулярные выражения. Выудить ссылку из HTML-кода

kamelotto
Мой последний код здесь.