2013-03-28 3 views
0

Я пытаюсь заменить RegEx в Notepad ++ и проблемы.Notepad ++ Replace, RegEx

По сути, я кодирую скрипт и добавил дополнительную переменную к функции, которая появляется сотни раз в моем коде.

Так это было:
MouseClick(442,421)

Теперь я добавил третью переменную для Mouseclick задержки так будет

MouseClick(442,421,4500)

4,5 сек по умолчанию задержка

На данный момент он не будет работать, поскольку третья переменная не объявлена, поэтому я, по сути, хочу использовать RegEx, чтобы найти все мои mouseclicks и добавить значение по умолчанию 4500 в конец, это i t возможно или RegEx не ответ?

Я пытаюсь найти: MouseClick(*,*)
И заменить: MouseClick(*,*,4500)

Также будет значение быть одинаковым при замене с шаблоном?

Спасибо.

+0

Я бы просто изменить первоначальную функцию, добавьте код, который проверяет, если третий аргумент опущен, используя 'arguments.length ', и если это присваивает значение по умолчанию 4500. – Moses

+0

Yah, я подумал об этом изначально, подумал, что RegEx может быть проще, но, вероятно, нет: p Я, вероятно, собираюсь дать вам вихрь! – user2087032

+0

Мои мысли об использовании регулярных выражений для исправления проблем в большой базе кода: http://xkcd.com/1171/ – Moses

ответ

3

Вы не можете заменить дикую карту. Вы должны «захватить» значения, которые были там раньше. Вы, вероятно, хотите найти

MouseClick\((.*),(.*)\) 

и заменить его

MouseClick(\1,\2,4500) 

комментарий, если у вас есть какие-либо вопросы.

+0

'. *' - жадный матч. Если линия имеет две или более запятых и закрытую скобку, то замена не будет работать по желанию. Например, 'MouseClick (442,421); // (x, y) 'изменен на' MouseClick442,421); // (x, y, 4500' с помощью Notepad ++ v6.2. (По какой-то причине замена теряет скобки, это ошибка Notepad ++?) Лучше будет искать '(MouseClick \ ([0-9] *, [0-9] *) (\)) 'и заменить на' \ 1,4500 \ 2'. – AdrianHHH

+0

Только что найдено, что круглые скобки указывают группировку в замещаемом регулярном выражении Notepad ++. Используйте '\ (' и '\)' для вставки круглые скобки. Подробнее см. http://www.boost.org/doc/libs/1_48_0/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html. – AdrianHHH

1

С Regular Expression режиме поиска выбран, замените MouseClick\((.*),(.*)\) с MouseClick(\1,\2,4500):

enter image description here