2009-11-16 2 views
3

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

Заменить: © $ 1 2009

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

+0

Та же проблема. В PCRE вы можете написать \ {1}, чтобы «защитить» ссылочный номер, но не находить информацию для Dreamweaver. Конечно, $ {1} не работает. – zx81

ответ

0

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

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

1

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

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

© 2002- 2008 
© 2002-2005 
© 2002- 2006