Eclipse найти и заменить регулярным выражением не работает с (? = регулярное выражение)?

Я попытался найти и заменить некоторые теги с помощью SpringSource Tool Suite (Eclipse). Я хочу изменить <annotation-driven /> на <mvc:annotation-driven />, но не хочу, чтобы <beans:bean ..> было <mvc:beans:bean ...>.

Итак, я сделал регулярное выражение следующим образом (на самом деле регулярное выражение длиннее этого, но я сделал его простым):

Найти: <(?=[^b])

Заменить на: <mvc:

Я добавил выражение (?=regex), чтобы избежать выбора первого символа. Он успешно находит, но ничего не заменяет. Если я удаляю выражение (?=regex), оно работает нормально, но первый символ удаляется.

Это ошибка? Или я что-то не так сделал?


person Sanghyun Lee    schedule 01.09.2011    source источник
comment
Я думаю, это ошибка. Я пробовал, и у меня тоже не получилось. ничего общего с пружинным инструментом - это обычная проблема с затмением.   -  person Bohemian♦    schedule 01.09.2011


Ответы (1)


Я бы использовал (?!b), но (?=[^b]) тоже должно работать. В любом случае, попробуйте это:

Найти: <([^b])

Заменить: <mvc:$1

$1 следует вставить содержимое первой группы захвата, то есть букву, отличную от b.

Если это не работает с $1, попробуйте вместо этого <mvc:\1.

person Alan Moore    schedule 01.09.2011
comment
Вау, здорово! Ваш навык регулярных выражений преодолевает ошибку. $1 сработало. Спасибо! - person Sanghyun Lee; 02.09.2011