2015-05-05 1 views
-1

Я не очень хорошо знаком с поиском «расширенных» и «регулярных выражений» & заменить параметры, используемые в Notepad ++, поэтому мне нужна помощь в преобразовании строк как это:Изменение определенной строки в другую определенную строку при сохранении содержимого первой строки

<a href="http://imgur.com/my7ul.png" class="bbc_url" title="External link" rel="nofollow external">http://imgur.com/my7ul.png</a> 

в этом формате:

<img class="bbc_img" src="http://imgur.com/my7ul.png" alt="Posted Image" /> 

Обратите внимание, что мне нужно только, чтобы быть в состоянии преобразовать (ссылка) строк, которые имеют изображения F rom imgur.com и что мне нужно уметь конвертировать каждую строку (link), в которой есть изображение imgur.com, а это значит, что имя файла изображения будет отличаться и должно оставаться неизменным для каждой строки, которая получает преобразованный. Имена файлов изображений Imgur содержат любые алфавитные и/или числовые символы (включая прописные и строчные буквы).


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

ответ

1

Вы можете использовать следующий, чтобы соответствовать (предполагая, что ваши ссылки и имена классов не содержит двойные кавычки):

<a\s*href="(.*?)"\s*class="(.*?)".*?<\/a> 

И заменить его:

<img class="\2" src="\1" alt="Posted Image" /> 

Edit: Если вы только для преобразования ссылок imgur.com .. вы можете использовать:

<a\s*href="(http:\/\/imgur.com\/.*?)"\s*class="(.*?)".*?<\/a> 

Объяснение:

  • <a\s* матчи < следуют a и любое количество белых пространств/вкладки (т.е. матч якорный тег)
  • href="(http:\/\/imgur.com\/.*?)" матчи href=" буквально, а затем ( => группы захвата 1 и http://imgur.com/ (сбежавшие специальные символы) и .*? любые символы не жадные (?) .. и затем " (т. е. атрибут захвата href)
  • \s* соответствует любому количеству пробелов
  • class="(.*?)" матчей class=" буквально .. затем ( захват группы 2 и .*? любых символов и " (т.е. захват атрибут класса)
  • .*?<\/a> соответствуют символам с последующим </a> (убежал специальный символ) (я.е сопрягать другие вещи до анкер закрыт)
+0

Не могли бы вы объяснить, как работает поисковая строка? – MasterofTheKingdom

+0

@MasterofTheKingdom проверить обновление :) –

0

Я хотел бы сделать:

Найти:

<a.*?href="(http://imgur\.com/[^"]+)".*?</a> 

Заменить:

<img class="bbc_img" src="$1" alt="Posted Image" /> 

Объяснение:

<a       : litteraly star tag <abstract 
.*?       : any character as less as possible 
href="      : litteraly href=" 
(       : start cappture group 1 
    http://imgur\.com/[^"]+ : that contains imgur.com 
)       : end of group 
"       : quote 
.*?       : any character as less as possible 
</a>      : litteraly </a> 

Для запасной части атрибут src будет оцениваться по содержанию группы 1

Смежные вопросы