Page 15 of 29

Posted: Mon Jul 29, 2013 9:09 pm
by Infocatcher
А у меня меняет. Вокруг «\[ [^\]]+ \]» не должно быть пробелов.

Posted: Thu Jun 19, 2014 5:29 pm
by kadvlad
Прошу помощи в автоматизации замены цифр.
Есть построчный текст:

Code: Select all

 ... 772-786
 ... 772-786
 ... 772-786
 ... 772-786
 ... 772-786
 ... 772-786
 ... 772-786
 ... 772-786
 ... 772-786
 ... 772-786
 ... 772-786
 ... 772-786
 ... 772-786
 ... 772-786
 ... 772-786
Нужно заменить каждую строку на соотв. порядковый номер в данном диапазоне:

Code: Select all

... 772
... 773
...
... 785
... 786

Posted: Fri Jun 20, 2014 8:53 am
by Instructor
kadvlad
SearchReplace.js

Что: ^(.*?)(\d+)-\d+$
Чем: if (typeof nInit == "undefined" || nInit != parseInt($2)) {nInit=parseInt($2); nCount=0;} return $1 + (nInit + nCount++);
[v] Регулярные выражения
[v] Многострочно
[v] Заменять на функцию

Posted: Fri Jun 20, 2014 9:45 am
by kadvlad
Instructor
спасибо, работает

Posted: Tue Jul 29, 2014 5:03 pm
by Volandqq
Здравствуйте!
Подскажите пожалуйста как можно сделать следующее:

есть файл в котором примерно следующий текст

"
Вася собрал 67394 яблок
Вася собрал 67394 яблок
Вася собрал 67394 яблок
Вася собрал 67394 яблок
"
и так далее много строк

Подскажите как заменить число 67394 чтобы было вот так

"
Вася собрал 67394 яблок
Вася собрал 67393 яблок
Вася собрал 67392 яблок
Вася собрал 67391 яблок
Вася собрал 67390 яблок
Вася собрал 67389 яблок
"

Posted: Tue Jul 29, 2014 8:08 pm
by opk44
Volandqq
Ответ на почти такой вопрос давался месяцем ранее. Читайте.
Вам только укоротить условие поиска
[Что]: ^(.*?)(\d+)
и поменять в функции плюс на минус у счетчика
[Чем]: if (typeof nInit == "undefined" || nInit != parseInt($2)) {nInit=parseInt($2); nCount=0;} return $1 + (nInit - nCount++);

Posted: Wed Jul 30, 2014 6:04 pm
by Serge Yolkin
Cuprum
Может, этот вариант менее корректен, но я делаю так:
что: \n+
на: \n
[x] регэксп

Posted: Wed Sep 24, 2014 5:30 pm
by Lenchik

Code: Select all

; =========== "GUI Development" ===========
; --- Predefined Dialog Boxes --- 
dialog errordlg export2wsdlg helpdlg inputdlg listdlg msgbox printdlg printpreview questdlg uigetdir uigetfile 
uigetpref uiopen uiputfile uisave uisetcolor uisetfont waitbar warndlg
; --- User Interface Deployment ---
guidata guihandles movegui openfig
;   --- User Interface Development ---
addpref getappdata getpref ginput guidata guide inspect isappdata ispref rmappdata rmpref setappdata setpref uigetpref 
uisetpref waitfor waitforbuttonpress
;       --- User Interface Objects ---
menu uibuttongroup uicontextmenu uicontrol uimenu uipanel uipushtool uitable uitoggletool uitoolbar
; =========== "3-D Visualization" ===========
; --- Surface and Mesh Plots --- 
;     ... Surface and Mesh Creation ...
hidden mesh meshc meshz peaks surf surfc surface surfl tetramesh trimesh triplot trisurf

Нужно в строках не начинающихся со знака ; заменить каждое начало строки и каждый пробел на определенный текст. По сути перед словами кое что вписать. Каким регекспом это выполнить?

Posted: Wed Sep 24, 2014 8:52 pm
by Serge Yolkin
Lenchik

Code: Select all

(?<=[^знаки])\b([A-Za-zЁА-Яа-яё]+)
на

Code: Select all

добавляемый текст\1
?

Posted: Thu Sep 25, 2014 11:29 am
by YuS
Serge Yolkin wrote:?
Так вставятся символы во все строки, а по условию, в строках где начальный символ ";", добавлять ничего не нужно. Тут без SearchReplace.js, с его возможностью добавления функции, не обойтись.

Posted: Thu Sep 25, 2014 5:31 pm
by Lenchik
Действительно, не работает как надо.
какую функцию написать?

Posted: Thu Sep 25, 2014 6:50 pm
by YuS
Lenchik wrote: какую функцию написать?
Это надо автора попросить, чтобы помог.
Как-то пытался найти описание, но увы, либо плохо искал, либо его нет в природе... а пример использования функций, приведенный в начале самого файла, не раскрывает всех возможностей.
А так, я бы это каким-нибудь sed-ом сделал, но здесь это уже оффтоп.

Posted: Thu Sep 25, 2014 7:29 pm
by KDJ
Lenchik
SearchReplace.js ("Regular expressions", "Multiline", "Replace with function").
What:

Code: Select all

^[^;\r\n].*
With:

Code: Select all

return "ReplaceText" + arguments[0].replace(/ /g, "ReplaceText");

Posted: Thu Sep 25, 2014 7:37 pm
by Lenchik
Great! Works! You saved me a lot of time making new .coder file. Thank you!
Hope i will understand someday how this magic function of you works.

Posted: Fri Sep 26, 2014 2:34 am
by YuS
Lenchik wrote: Hope i will understand someday how this magic function of you works.
Да, в готовом решении от джедая уже разобраться можно, но вот как найти решение не имея описания или хотя бы примеров... действительно, на магию похоже. :)
А работает она так:
С помощью регэкспа и определенных настроек формы замены выбираются необходимые строки, из выборки исключаются пустые строки и строки без начального символа ";", затем к выборке применяется функция замены пробелов на необходимый текст.