Подстановка регулярного выражения Dreamweaver с последующим номером

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

Замена: 1 доллар 2009 г.

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


person mark    schedule 16.11.2009    source источник
comment
Та же проблема. В PCRE вы можете написать \{1}, чтобы защитить ссылочный номер, но не сможете найти информацию для Dreamweaver. Конечно, ${1} не работает.   -  person zx81    schedule 16.12.2011


Ответы (2)


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

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

© 2002- 2008
© 2002-2005
© 2002- 2006
person Danilo Celic    schedule 17.11.2009

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

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

person Tim Pietzcker    schedule 16.11.2009