Page 16 of 29
Posted: Fri Sep 26, 2014 2:55 am
by Skif_off
YuS wrote:как найти решение не имея описания или хотя бы примеров...
Знаний, кажется, просто JS достаточно.
Прозвучало не очень похоже. да? 
Posted: Fri Sep 26, 2014 3:23 am
by Lenchik
Вот как пошагово срабатывает эта функция и непонятно
Code: Select all
return "ReplaceText" + arguments[0].replace(/ /g, "ReplaceText");
Предполагаю, что return ... + работает как +=
arguments[0] это, наверно, отсчитываемые от нуля элементы, отсевиваемые первым (нулевым) правилом в регэкспе.
Но что такое "/ /g" - я в тупике.
Или я не прав, а return "ReplaceText" просто в начало строки вбивает, а потом пристыковывает результаты замены?
Posted: Fri Sep 26, 2014 4:07 am
by Skif_off
Lenchik
return возвращает результат функции, g - флаг поиска (искать глобально).
Posted: Fri Sep 26, 2014 5:17 am
by YuS
Lenchik wrote:Вот как пошагово срабатывает эта функция и непонятно
Code: Select all
return "ReplaceText" + arguments[0].replace(/ /g, "ReplaceText");
Предполагаю, что return ... + работает как +=
Ну, про return уже сказали, это то, что возвращает функция, а вот:
Lenchik wrote:
arguments[0] это, наверно, отсчитываемые от нуля элементы, отсевиваемые первым (нулевым) правилом в регэкспе.
Но что такое "/ /g" - я в тупике.
arguments[0].replace - это оператор замены для всех найденных аргументов, что в данном случае, является:
"/ /g" - регэксп, обозначающий пробел с глобальным модификатором.
В общем, тут, конечно, пояснения не помешали бы от автора или от тех, кто знает как это всё работает... и если не полное описание, то хотя бы
побольше примеров применения...
Posted: Fri Sep 26, 2014 7:40 am
by KDJ
Posted: Fri Sep 26, 2014 10:34 am
by YuS
KDJ wrote:About:
Thank you!
Posted: Tue Oct 07, 2014 2:29 pm
by mackween
Добрый день.
Помогите пожалуйста в замене текста в строке:
address=""[diy]48" <+79093297486>" date
на вид:
address=""+79093297486>" date
Posted: Wed Oct 08, 2014 4:50 am
by Drugmix
mackween
что: "[diy]48" <"
чем: ""
если вместо 48 возможны и другие числа, то надо поставить галку "regular expressions" и использовать такое условие:
что: "\[diy\]\d+?"\s<"
Posted: Wed Oct 08, 2014 1:22 pm
by mackween
Drugmix wrote:mackween
что: "[diy]48" <"
чем: ""
если вместо 48 возможны и другие числа, то надо поставить галку "regular expressions" и использовать такое условие:
что: "\[diy\]\d+?"\s<"
Спасибо, но не помогло. Поточнее опишу суть.
Этот xml с СМС из WM, при переносе на андроид возникают проблемы - ответы от номеров с никами импортятся криво - отдельно от исходящих. Нужно убрать ники, они могут состоять из букв и цифр.
Пример строк:
<sms protocol="0"
address=""[diy]48" <+79093297486>" date="1273950151000" type="1" body="Если оклимался после спорта - подходи )" status="-1" read="1" />
Привести надо к виду: <sms protocol="0"
address=""+79093297486>" date="1273950151000" type="1" body="Если оклимался после спорта - подходи )" status="-1" read="1" />
<sms protocol="0"
address=""Валерка 100 рублей" <+79329229718>" date="1277977174000" type="1" body="Ртот абонент Р·РІРѕРЅРёР» вам 3 раза. Последний - 01 июля РІ 00:12" status="-1" read="1" />
Это к виду <sms protocol="0"
address=""+79329229718>" date="1277977174000" type="1" body="Ртот абонент Р·РІРѕРЅРёР» вам 3 раза. Последний - 01 июля РІ 00:12" status="-1" read="1" />
Т.е. чтобы после adress=""e; шел номер телефона +7... .
И еще скорее всего окончание у телефона
> тоже не понадобится, как нужно будет искать и менять тогда? Т.е. конечный вид чтобы был
address=""+79329229718;"
Прошу прощения за громоздкий ответ.
Posted: Wed Oct 08, 2014 1:57 pm
by Instructor
mackween
Что: address=".*?<([+\d]++)>"
Чем: address=""\1;"
[v] Регулярные выражения
Posted: Thu Oct 09, 2014 8:37 am
by mackween
Instructor спасибо большое!
Posted: Sun Dec 07, 2014 7:05 am
by SaDim
Подскажите пожалуйста!
Как заменять текст на текст+1 скажем до 5 и повторять так для всего документа. Пример:
Есть: он, он, он, он, он, он, он, он, он, он, он.
Должно стать: он1, он2, он3, он4, он5, он1, он2, он3, он4, он5, он1.
Posted: Sun Dec 07, 2014 8:18 am
by Instructor
SaDim
SearchReplace.js
Что: (он)
Чем: if (typeof nCount == "undefined" || nCount > 5) {nCount=1;} return $1 + (nCount++);
[v] Регулярные выражения
[v] Заменять на функцию
Posted: Sun Dec 07, 2014 9:03 am
by SaDim
Instructor
СПАСИБИЩЕ.
Ещё маленький вопрос?
Как из множества сплошных HEX-строк делает HEX-строки с пробелами (байт). Пример:
Есть: 4D5A90000300000004000000FFFF000000900200A801
BC45F4023570
Надо: 4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00 00 90 02 00 A8 01
BC 45 F4 02 35 70
В EmEditor получается с помощью ".." на "\0 ", а в AkelPad так не проходит, зачем то учитывается код окончания строк.
Drugmix, Спасибо, работает.
Posted: Sun Dec 07, 2014 9:53 am
by Drugmix
SaDim
что значит "зачем-то"? Нет причин, почему символы rn/lf не должны учитываться.
И да, они тоже подпадают под regex "."
Чтобы их игнорировать - надо добавить их в исключения: "[^\n\r]"
Итого шаблон для "что" получается такой: [^\n\r]{2}
[v] Регулярные выражения