Подстановка регулярного выражения Dreamweaver с последующим номером - PullRequest
3 голосов
/ 16 ноября 2009

Я использую Dreamweaver для обновления дат авторских прав на моем сайте. Я хочу сохранить существующий интервал (или его отсутствие) между годами. Примеры: & Копировать; 2002-2008 следует обновить до & copy; 2002-2009 & Копировать; 2003 - 2008 следует обновить до & copy; 2003 - 2009 Это регулярное выражение, которое я использую для достижения этой цели в функции поиска и замены Dreamweaver. Найти: & Копировать; \ S * (\ d {4} \ S * - \ S *) \ д {3} [^ 9]

Заменить: & Копировать; $ 1 2009

Вот ПРОБЛЕМА: Это выражение работает, но имеет лишний пробел между дефисом и 2009. Если я напишу выражение замены без пробела, как & copy; $ 12009, затем Dreamweaver ищет 12 009-ю замену в выражении поиска и, не найдя ее, печатает $ 12009.

Ответы [ 2 ]

1 голос
/ 17 ноября 2009

Если вы не захватите -, а также пробелы до или после него и только запишите ведущий год, тогда это немного облегчит жизнь: © \ S * (\ d {4}) \ S * - * \ S \ д {3} [^ 9] затем заменить на: @ $ 1 - 2009

Только что попробовал локально, и это сработало в следующих тестовых случаях:

© 2002- 2008
© 2002-2005
© 2002- 2006
0 голосов
/ 17 ноября 2009

У меня нет Dreamweaver, но я полагаю, что его движок регулярных выражений не поддерживает обходной путь - по крайней мере это введение от Adobe не упоминает об этом. Так что вам понадобится обходной путь. Одна вещь, которую вы могли бы сделать (не красиво, но это работает):

Используйте © $1QQQQ2009 в качестве строки замены, а затем выполните второй проход, ища QQQQ и заменяя его ничем. До тех пор, пока вы уверены, что в вашем тексте нет ни одного реального вхождения QQQQ:)

...