2012-05-16 2 views
0

Я искал эту информацию, но не могу понять, как правильно понимать регулярное выражение. У меня есть html-файл, и есть несколько тегов <img>. Каждый из этих тегов имеют attribe src со следующими данными: /newsletter/images/light/b/NUMERICVALUE/IMAGENAME.jpgRegex in Notepad ++ для замены

Если предположить, что NUMERICVALUE и IMAGENAME всегда разные значения в каждом атрибуте src.

Мне нужно удалить /NUMERICVALUE с каждого URL-адреса. Как я могу это сделать?

Спасибо за любое предложение.

Вот список примеров:

/newsletter/images/light/b/617359405/lf-header.jpg /newsletter/images/light/b/617359406/up-logo.jpg /newsletter/images/light/b/617359407/logo-header.jpg

+0

Если его список и они имеют одинаковую длину, alt + leftmouse для выбора столбца, удалите –

+0

@Alex K. no, там размещены внутри всего html-документа. поэтому нет возможности использовать комбинацию alt + leftmouse. Есть еще 2000 строк кода. – aspirinemaga

ответ

2

Поиск: src=\"\/newsletter\/images\/light\/b\/[^\/]*\/([^\"]*)\"
Заменить: src="/newsletter/images/light/b/\1"

Объяснение:

  • Определяет полный URI: \/newsletter\/images\/light\/b\/[^\/]*\/([^\"]*)
  • Это найти что-либо без/слэш [^\/]*
  • Найдет что-нибудь без "цитаты ([^\"]*)
  • ( и ) говорит движок регулярных выражений, чтобы захватить содержание его
  • В замене \1 заставляет движок регулярных выражений для вставки захвата 1 на этом месте

Edit: Обновлен для использования на всех src= атрибутов, как упоминалось в комментариях.

+0

+1 тоже не нужно бежать/в АЭС –

+0

мы можем сделать это со всеми 'src', а не только с помощью' aspirinemaga

+0

@aspirinemaga Я отредактировал свой ответ для соответствия на всех' src = "" 'attributes. – GodLesZ

0

Это едва связанных с программированием, но все равно:

Find what: (<img src=.*/)\d+/ 
Replace with: \1 

Вход:

<img src="/newsletter/images/light/b/654/IMAGENAME.jpg"/> 
<img src="/newsletter/images/light/b/5752/IMAGENAME.jpg"/> 
<img src="/newsletter/images/light/b/78697345/IMAGENAME.jpg"/> 
<img src="/newsletter/images/light/b/7896789/IMAGENAME.jpg"/> 
<img src="/newsletter/images/light/b/45/IMAGENAME.jpg"/> 
<img src="/newsletter/images/light/b/8/IMAGENAME.jpg"/> 
<img src="/newsletter/images/light/b/4567837/IMAGENAME.jpg"/> 

Выход:

<img src="/newsletter/images/light/b/IMAGENAME.jpg"/> 
<img src="/newsletter/images/light/b/IMAGENAME.jpg"/> 
<img src="/newsletter/images/light/b/IMAGENAME.jpg"/> 
<img src="/newsletter/images/light/b/IMAGENAME.jpg"/> 
<img src="/newsletter/images/light/b/IMAGENAME.jpg"/> 
<img src="/newsletter/images/light/b/IMAGENAME.jpg"/> 
<img src="/newsletter/images/light/b/IMAGENAME.jpg"/> 
+0

спасибо за сообщение, но NUMERICVALUE всегда по-разному в каждом пути.Я добавил список примеров. – aspirinemaga

+0

Обновлен мой ответ. В следующий раз, пожалуйста, постарайтесь дать такую ​​информацию раньше;) – m0skit0

+0

Также я могу рекомендовать сценарий, который на самом деле выполняет эту замену (например, с использованием Perl), поэтому вам не нужно открывать файл в Notepad ++ для выполнения таких манипуляций. Это быстрее :) – m0skit0

1

Я думаю NUMERICVALUE является фактическим числовым значением, поэтому простое решение:

Find what: /newsletter/images/light/b/\d+/([a-zA-Z0-9_]+).jpg 
Replace with: /newsletter/images/light/b/\1.jpg 

содержания изменения [a-zA-Z0-9_] на то, что вам нужно.

+0

Ничего хорошего на самом деле ^^ – m0skit0

+0

Точно, это то, что я искал. Спасибо большое jornb87! – aspirinemaga

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