Проблема с заменой в Eclipse - PullRequest
       10

Проблема с заменой в Eclipse

9 голосов
/ 03 апреля 2010

Я использую регулярное выражение для сопоставления всех не указанных в кавычках имен свойств в моих файлах json. Eclipse без проблем находит нужные совпадения, но когда я хочу заменить соответствующие строки на "$2", я получаю эту ошибку: Match string has changed in file filename.json. Match skipped

Вот регулярное выражение, которое я использую:

((\w+)\s*(?!['"])(?=:))

Есть идеи, как обойти эту проблему?

Ответы [ 2 ]

12 голосов
/ 24 июня 2010
1 голос
/ 04 апреля 2010

Звучит как проблема с инструментом, а не с регулярным выражением, но я не знаком с Eclipse, поэтому не могу быть более конкретным. Может ли ожидаться \2 вместо $2?

Если предположить, что имена свойств совпадают с \w+, это регулярное выражение должно работать нормально, хотя отрицательный прогноз является избыточным. Если следующий символ - двоеточие - (?=:) - тогда, конечно, это не апостроф или кавычка - (?!['"]).

...