Page 10 of 13
Posted: Wed Mar 22, 2017 7:33 am
by YuS
InFive wrote:
а как научиться составлять подобные функции?
Ну, функции, они во многих языках схожи, различия только в синтаксисе и операторах...
Скажем, в данном случае использовалась функция условного блока:
Code: Select all
if (<здесь какое-либо условие с итоговым выводом TRUE или FALSE>) {
Здесь набор команд, выполняемых при выводе условия в TRUE
} else {
Здесь набор команд, выполняемых при выводе условия в FALSE
}
как-то так.
А вот, что будет использоваться в качестве условия, уже выбирается regexp-ом.
Синтаксис изучать надо JScript (не одно и то же, что javascript, хоть и похожи), ссылки на оффлайновые книжки где-то здесь на форуме публиковали, также можно на msdn
msdn почитать. В двух словах всего не рассказать...
ЗЫ Что-то с парсером на форуме, BB коды URL не работают...
Posted: Wed Mar 22, 2017 3:06 pm
by opk44
YuS wrote:ЗЫ Что-то с парсером на форуме, BB коды URL не работают...
Работают, но скобки внутри ссылок на дух не переносят.
Posted: Thu Jun 01, 2017 10:25 am
by InFive
ребят, подскажите другой вариант написания группы для поиска неопределенного количества любых символов вместо
если писать (.+) в скрипте TextReplace.js, то выполняется без проблем, а если писать в пакетном файле для TextReplace.js, то не выполняется...
то есть, как прописать правильно (.+) в пакетном файле для скрипта TextReplace.js?
Posted: Thu Jun 01, 2017 12:36 pm
by opk44
InFive
Предоставленных данных для тестирования недостаточно.
Может дело просто в трактовке переводов строк?
Т.е. учитывается ли, например, флаг "n" в batch-файле?
Posted: Thu Jun 01, 2017 1:15 pm
by InFive
opk44 wrote:InFiveМожет дело просто в трактовке переводов строк?
Т.е. учитывается ли, например, флаг "n" в batch-файле?
да, в batch-файле флаг "n" я ставлю
Posted: Fri Jun 02, 2017 4:59 am
by YuS
InFive wrote:ребят, подскажите другой вариант написания группы для поиска неопределенного количества любых символов вместо
если писать (.+) в скрипте TextReplace.js, то выполняется без проблем, а если писать в пакетном файле для TextReplace.js, то не выполняется...
то есть, как прописать правильно (.+) в пакетном файле для скрипта TextReplace.js?
Если не выполняется, то это баг и KDJ поправит его, но для этого, как сказали выше, необходимо больше информации...
Posted: Fri Jun 02, 2017 8:21 am
by InFive
YuS wrote:
Если не выполняется, то это баг и KDJ поправит его, но для этого, как сказали выше, необходимо больше информации...
KDJ крайне редко стал бывать на форуме...
да что тут нужно еще писать, что, трудно сделать тесты? правда, вы не разрабы этого скрипта, я понимаю...
итак, пишу в пакетный файл единственную строку
применяю его на тексте, но выдается ошибка такого характера
Ошибка в пакетном файле, строка: 1.
Синтаксическая ошибка в регулярном выражении!
так где же эта ошибка в этой регулярке?
если у вас есть связь с KDJ, то, пожалуйста, свяжитесь...
или может все таки есть другой вариант написать эту регулярку?
Posted: Fri Jun 02, 2017 9:21 am
by opk44
InFive wrote:итак, пишу в пакетный файл единственную строку
применяю его на тексте, но выдается ошибка такого характера
Ошибка в пакетном файле, строка: 1.
Синтаксическая ошибка в регулярном выражении!
так где же эта ошибка в этой регулярке?
У меня ваш пример отрабатывается нормально - количество замен 117 (за образец был взят текст с этой страницы форума)
версии используемых файлов:
TextReplace.js
//
http://akelpad.sourceforge.net/forum/vi ... 0804#30804
// Version: 2016-07-26
TextReplace_function.js
http://akelpad.sourceforge.net/forum/vi ... 0653#30653
Version: 2016-07-20
Posted: Fri Jun 02, 2017 9:41 am
by YuS
InFive wrote:Ошибка в пакетном файле, строка: 1.
Синтаксическая ошибка в регулярном выражении!
так где же эта ошибка в этой регулярке?
В моем случае тоже, как и у
opk44, никаких ошибок...
Видимо, у Вас где-то ошибка в кодировке или разделителях...
Выложите куда-нибудь сам batch - файл, посмотрим.
Posted: Mon Jun 26, 2017 2:09 pm
by yozhic
Пожалуйста, помогите разобраться. Есть текст:
Выражение
находит и выделяет все три строчки 'b22' вместе. То есть '+' работает, как и должен работать: одно или больше совпадений. А выражение
не выделяет весь текст, хотя по идее должно. Весь текст можно выделить только если добавить ещё +, «ужаднить» т.е.:
Почему в первом случае выделяет, а во втором нет? Баг, фича, или я чего-то недопонял?
Posted: Mon Jun 26, 2017 5:38 pm
by opk44
yozhic wrote:Баг, фича
1. Возможно и то и другое.
Например, при использовании SearchReplace.js (т.е. на JavaScript-овском движке), наоборот, именно второй вариант будет "рабочим", а третий (с 2-мя плюсами) нет.
2. Из любопытства. А есть ли вообще необходимость проверять "середину"? Проще же ловить только "края" (по аналогии с HTML тэгом):
Posted: Mon Jun 26, 2017 6:11 pm
by yozhic
opk44 wrote:необходимость проверять "середину"?
Есть. В реальном тексте есть строчки вида a11\nc33\nc33\n – такие тоже поймаются, если серединку обобщить, а их ловить нельзя.
Posted: Tue Jun 27, 2017 1:36 am
by YuS
yozhic wrote: Почему в первом случае выделяет, а во втором нет? Баг, фича, или я чего-то недопонял?
Очень похоже на ошибку в движке парсинга регэкспов. По идее, должно работать во всех случаях...
Posted: Sun May 13, 2018 6:45 pm
by InFive
ребят, помогите составить регулярку/функцию
нужно вот такое и подобное ему
аллергические и кожные ZZZ 10,164,192,193,207,215,216,270,271—273,275,276,278,279,282—285,287,321,326
превращать вот в такое
аллергические и кожные 10
аллергические и кожные 164
аллергические и кожные 192
аллергические и кожные 193
аллергические и кожные 207
аллергические и кожные 215
аллергические и кожные 216
аллергические и кожные 270
аллергические и кожные 271—273 271
аллергические и кожные 275
аллергические и кожные 276
аллергические и кожные 279
аллергические и кожные 282—285 282
аллергические и кожные 287
аллергические и кожные 321
аллергические и кожные 326
Posted: Mon May 14, 2018 5:35 pm
by YuS
InFive wrote:помогите составить регулярку/функцию
...
аллергические и кожные ZZZ 10,164,192,193,207,215,216,270,271—273,275,276,278,279,282—285,287,321,326
превращать вот в такое
аллергические и кожные 10
аллергические и кожные 164
...
SearchReplace.js
[v] Регулярные выражения
[v] Многострочно
[v] Заменять на функцию
Code: Select all
Что:^.*?( ZZZ ).*$
Чем:var a,b,c,str;str="";a=$0.split($1);c=a[1].split(",");for(b in c){str+=a[0]+" "+c[b].replace(/((\d+)—\d+)/g,"$1 $2")+"\n";}return(str);