Регулярные выражения работают нормально, в вашем случае для ^ необходимо подключить Esc-последовательности и Мультистрочность, без них и не работает
вот такой вариант срабатывает:
Code
-"Удалить Tab-ы и пробелы в начале строки" Call("Scripts::Main", 1, "Multi_SR.js", `"(^[ \t]+)" "" 0 1 1 0 4 3`) Icon("%a\AkelPadImage.dll",150)
Рашифровка: "(^[ \t]+)" - что искать "" - чем заменять 0 - не Учитывать регистр 1 - Многострочно 1 - с Esc-последовательностями 0 - не заменять на функцию 4 - поиск Сначала 3 - Заменить всё
Quote
Не совсем для меня ясен 6-ой пункт «bReplaceFunction - заменять на функцию» — по подробней, пожалуйста.
В скрипте SearchReplace.js такой функционал тоже есть, небольшой пример:
"(Number($1)+1)" - это функция js скриптинга... в данном случае найденные цифры увеличатся на единицу
с помощью Multi_SR.js будет так:
Code
-"Увеличить все цифры на единицу" Call("Scripts::Main", 1, "Multi_SR.js", `"(\d+)" "(Number($1)+1)" 0 0 0 1 4 3`) Icon("%a\AkelPadImage.dll",527)
В очередной раз немного модифицировал скрипт сделал попроще Добавил возможность замены/поиска из буфера и замены/поиска из выделения
/// (если в строке поиска или замены прописано #select#, то #select# заменяется на выделенный текст) /// (если в строке поиска или замены прописано #bufer#, то #bufer# заменяется на содержимое из буфера обмена) /// (если в строке поиска или замены необходимо использовать кавычки, то используйте двойной апостроф '')
Сохранение документа после замен
Code
-"Замена выделения содержимым из буфера" Call("Scripts::Main", 1, "Multi_SR.js", `#select# #bufer#`) -"Вставить ссылку логотипа из буфера в шаблон" Call("Scripts::Main", 1, "Multi_SR.js", `"_логотип_" "#bufer#"`)
Здравствуйте. Хочу сообщить об одном моменте в скрипте Multi_SR.js. Кнопка выглядит так: Доступно только для пользователей При попытке удаления фрагмента из таблицы стилей css например: Доступно только для пользователей а менно части url(../ - скрипт выдает ошибку. Для таких вариантов - лучше использовать скрипт EvalCmd.vbs Например кнопка Доступно только для пользователей Спасибо Всем Разработчикам - облегчающим жизнь.
Поступил вопрос, я думаю кому-нибудь может пригодится
Цитата
почему данный скрипт вылетает с ошибкой? Ведь, вроде, всё правильно... "Заменить прямые кавычки на (« ») в выделенном" Call("Scripts::Main", 1, "Multi_SR.js",`"''\S''" "«\S»" 0 0 1 0 8 3`)
Так работает
Код
-"Заменить прямые кавычки на (« ») в выделенном" Call("Scripts::Main", 1, "Multi_SR.js",`"''(\S*)''" "«$1»" 0 0 1 0 8 3`)
Andrey_A, Можешь немножко доработать скрипт? (или опциональный параметр сделать или просто весь скрипт жёстко изменить). Если нет выделения - должен обрабатываться весь файл. Если есть выделение - обрабатывать только выделенный фрагмент. DreamLair.net
Andrey_A, если я правильно понимаю, то с параметром х команды удаления пустых строк и удаления более одной пустой строки в выделенном или в целом тексте будут выглядеть так:
Код
"Удалить пустые строки" Call("Scripts::Main", 1, "Multi_SR.js", `"(\n)+" "$1" 0 1 1 0 x 3`) "Удалить более одной пустой строки" Call("Scripts::Main", 1, "Multi_SR.js", `"(\n\n)\n+" "$1" 0 1 1 0 x 3`)
По крайней мере эти конструкции работают и с выделенным и с целым текстом. Единственное, с выделенным наблюдается такой глюк. Если в выделенном первая строка пустая, то при "Удалить пустые строки" она не удаляется. Если первые две строки пустые, то удалится только одна из них, а одна пустая строка останется. Аналогично и с командой "Удалить более одной пустой строки", только остаются две пустые строки. И, конечно же, с Новым годом!!!
Сообщение отредактировал matrixGG - Вторник, 05.01.2016, 14:20
я так понимаю ошибка в "\2" не понимаю как ее правильно записать.
P/s и если можно доработать кнопку, чтобы все строки сохранились, а мой результат "найти (^6([1-9])) заменить на \2" следовал далее . т.е. было: 6500044 6500045
hanck, [КОД:] Выделить весь код "Убираем 6 в начале строки" Call("Scripts::Main", 1, "Multi_SR.js",` "^6([1-9])" "$1" 0 1`) Icon("%a\AkelPadImage.dll",490)
Спасибо, а почему $1 а не \1 ?
возникла задача привести телефонные номера в одинаковый формат, например, в Текст - 79282000000 - Текст В исходном тексте номера встречаются в таком виде: 8(928)000000 8928-200-00-00 +79282000000 9282000000 928-200-00-00 и т.д. и тп на просторах интернета нашел выражение которое находит почти все эти номера в тексте: ^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$ (только вместо ^ ставлю .*), а вот как правильно заменять не понимаю
пока жду ответа пытаюсь разобраться сам))) не судите строго итак, если учесть, что телефонные номера, насколько я знаю, начинаются с 9ки (+79, 79, 89, 9), то взял 9ку за основу, получилось такое выражение найти (.*)(9\d{1,3})(\D{1,3})(\d{1,3})(\D{1,3})(\d{1,3})(\D{1,3})(\d{1,3})(.*)$ заменить на \1 \2\4\6\8 \9 которое подходит для номеров вида: 7928 200 00 00, 928 200 00 00, 8928 200 00 00; 7(928) 200 00 00, (928) 200 00 00, 8(928) 200 00 00; 7928-200-00-00, 928-200-00-00, 8928-200-00-00; 7(928)-200-00-00, (928)-200-00-00, 8(928)-200-00-00.
Таким образом получается "отрезать" телефонные номера от остального текста и в дальнейшем осуществлять по ним поиск с использованием поисковых программ, \D{1,3} - беру с запасом, мало ли, кто-то ставит 2 пробела или "пробел" "-" "пробел"
Для номеров формата +79282000000 найти (.*)\+79(\d{9})(.*)$ заменить \1 9\2 \3 Для номеров формата (928)2000000, +7(928)2000000, 7(928)2000000, 8(928)2000000 найти (.*)(9\d{1,3})(\)\D{,3})(\d{7})(.*)$ заменить \1 \2\4 \5 и так далее может кому пригодится
Сообщение отредактировал hanck - Понедельник, 06.11.2017, 00:57
возникла задача привести телефонные номера в одинаковый формат
В ваших условиях нет конкретики, а именно: 7, 8 - могут быть или не быть пробелы, скобки, дефисы могут быть и не быть С этим учётом я сделал регулярку, но она не точная (может получать 10 значные цифры в тексте)
Для извлечения из текста информации можно воспользоваться скриптом: getRegExp.vbs - Извлекает из выделенного текста информацию с заданным регулярным выражением
Для тестирования рег. выражений можно воспользоваться программой RegExp Есть конечно разница между движком R.E. AkelPad и Autoit , но в большинстве случаев все совпадает
[КОД:] Выделить весь код -"Причёсывание телефонных номеров" Call("Scripts::Main", 1, "Multi_SR.js", `"[\+]?([78])?[ (\-]{0,3}(\d{3})[ \-)]{0,3}(\d{3})[ \-]{0,3}(\d{2})[ \-]{0,3}(\d{2})" "$1$2$3$4" 0 1 1 0 "x" 3`) Icon("%a\AkelPadImage.dll",1494)
спасибо большое, чуть поправил " $1$2$3$4$5"
п.с. [ (\-]{0,3}(\d{3}) расшифруйте, пожалуйста, для чего нужен тут нужен символ "\" он экранирует? гоняю в Regexp с ним и без и никакой разницы не вижу.
Сообщение отредактировал hanck - Воскресенье, 12.11.2017, 00:51