Заместване на регулярен израз на Dreamweaver, последвано от число

Използвам Dreamweaver, за да актуализирам датите на авторските права в моя сайт. Искам да запазя съществуващото разстояние (или липсата на такова) между годините. Примери: 2002-2008 трябва да се актуализира до 2002-2009 2003 - 2008 трябва да се актуализира до 2003 - 2009 Това е регулярният израз, който използвам, за да постигна това във функцията за намиране и замяна на Dreamweaver Find: \s*(\d{4}\ s*-\s*)\d{3}[^9]

Замяна: $1 2009

Ето ПРОБЛЕМА: Този израз работи, но има това допълнително пространство между тирето и 2009. Ако напиша израза за замяна без интервал, като $12009, тогава dreamweaver търси 12 009-то заместване в израза за намиране и не намира такова , отпечатва $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, но предполагам, че неговата regex машина не поддържа lookaround - поне това въведение от Adobe не го споменава. Така че ще ви трябва заобиколно решение. Едно нещо, което можете да направите (не е красиво, но работи):

Използвайте © $1QQQQ2009 като заместващ низ и след това направете второ преминаване, като потърсите QQQQ и го замените с нищо. Стига да сте сигурни, че нямате реални срещания на QQQQ в текста си някъде :)

person Tim Pietzcker    schedule 16.11.2009