2016-10-03 5 views
1

У меня более тысячи веб-страниц Мне нужно grap html-данные в пределах определенного поля, а затем не заменять эти данные, но мне нужно скопировать эти данные в мета-поле выше в голове того же html документ.Регулярное выражение - найти и заменить в Dreamweaver

Я нашел код ниже, несколько используя полный.

находка:

<span class="CatStyle">(.*)</span>

заменить, например.

<span class="CatStyle">$1</span> <meta name="Category" content="$1">

Но как бы я использовать/я мог использовать регулярные выражения, чтобы найти указанные данные выше, но тогда вместо того, чтобы заменить, как я имею в приведенном выше примере, я мог заменить/вставить вар $ 1 в <meta name="Category" content="$1"> в голове документ, вместо того, чтобы вставлять под диапазон. ?

Любые идеи?

+1

Похоже, вам нужно использовать шаблон внутри диалога поиска и замены, верно? И есть только один тег 'meta' с именем' Category' * перед * вопросом 'span'? Попробуйте '( [\ s \ S] * ) ([\ s \ S] *?) () 'и заменить на' $ 1 $ 3 $ 2 $ 3 $ 4' –

+0

Пятно на! Отлично работает!: D Легенда. :) Вы должны переставить это ниже в качестве ответа, поэтому я могу утвердить его как правильный ответ. –

+0

Также, когда дело доходит до обычного Я понимаю, насколько A (.*) B находит значение между A & B и делает его $ 1 для целей замены. Как именно вы это сделали/что делает код/​​функции? Это работает отлично, но мне просто интересно, как это работает. –

ответ

2

ПРИМЕЧАНИЕ: Для управления HTML вы можете использовать более эффективные инструменты - парсеры HTML - чем диалог S & R с поддержкой регулярных выражений.

Для одноразовой работы, если вам нужно использовать шаблон внутри поиска и замена диалога и есть только один meta тег с name равным Категории перед span, вы можете использовать

(<meta name="Category" content=")[^"]*(">[\s\S]*<span class="CatStyle">)([\s\S]*?)(</span>) 

и заменить на $1$3$2$3$4 обратную ссылку.

Детали:

  • (<meta name="Category" content=") - Группа 1 захватывая <meta name="Category" content=" строка
  • [^"]* - кроме "
  • (">[\s\S]*<span class="CatStyle">) 0+ символы - Группа 2 захвата ">, то любые 0+ символы (как многие насколько возможно) до последнего <span class="CatStyle">, а затем <span class="CatStyle"> сам
  • ([\s\S]*?) - Группа 3 захват любых 0+ символов, как можно, вплоть до первого ...
  • (</span>) - Группа 4 захватывая </span>

$n является обратные_связью к группам, определенным в шаблоне помощь парных (...).

+0

Также смотрите [* Capturing groups *] (http://www.regular-expressions.info/brackets.html) и [* Backreferences *] (http://www.regular-expressions.info/replacebackref. html) на regular-expressions.info. –