AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

поиск и замена
Goto page Previous  1, 2, 3 ... 16, 17, 18
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
YuS



Joined: 15 Sep 2013
Posts: 182

PostPosted: Wed May 20, 2015 12:25 pm    Post subject: Re: Вопрос по функционалу: копирование и вставка в нужные по Reply with quote

ezjikfrom wrote:

Подскажите, пожалуйста, как это сделать в AkelPade

Для начала, дайте пример файла.
Back to top
View user's profile Send private message
ezjikfrom



Joined: 20 May 2015
Posts: 4

PostPosted: Wed May 20, 2015 12:36 pm    Post subject: Reply with quote

Вот пример xml. Два товара для примера (там их тысячи). Нужно скопировать ссылку из url в descripshion, добавить к существующей там информации

</offer>
<offer id="2414889" available="true">
<url>http://store.ru/664482</url>
<price>1157</price>
<currencyId>RUB</currencyId>
<categoryId>296</categoryId>
<categoryId>303</categoryId>
<picture>http://babadu.ru/upload/iblock/654/48.jpg</picture>
<name>Ночник Овечка англоязычная VTech</name>
<vendor>VTech</vendor>
<vendorCode>80-074003</vendorCode>
<description><Ночник Овечка англоязычная VTech станет отличным приобретением для вашего крохи.></description>

</offer>
<offer id="2414890" available="true">
<url>http://store.ru/557</url>
<price>1936</price>
<currencyId>RUB</currencyId>
<categoryId>1469</categoryId>
<categoryId>1486</categoryId>
<categoryId>1491</categoryId>
<picture>http://babadu.ru/upload/iblock/2c3/1.jpg</picture>
<name>Обучающая сказка Золушка VTech </name>
<vendor>VTech</vendor>
<vendorCode>80-062056</vendorCode>
<description><Обучающая сказка Золушка VTech - это удивительная книга, в которой так много всего интересного и полезного для малыша.></description>
Back to top
View user's profile Send private message
YuS



Joined: 15 Sep 2013
Posts: 182

PostPosted: Wed May 20, 2015 5:04 pm    Post subject: Reply with quote

ezjikfrom wrote:
Вот пример xml. Два товара для примера (там их тысячи). Нужно скопировать ссылку из url в descripshion, добавить к существующей там информации

По аналогии отсюда (спасибо KDJ):
Скрипт SearchReplace.js
+ Регулярные выражения
+ Заменять на функцию
Code:
Что: (<offer[^>]*>[\s\S]*?<url>)([\s\S]*?)(</url>[\s\S]*?<description>([\s\S]*?)<\/description>[\s\S]*?</offer>)
Чем: return $1 + $2 + ($3).replace(/<description>[\s\S]*?<\/description>/g, "<description>" + " " + $2 + " " + $4 + "<\/description>");
Back to top
View user's profile Send private message
ezjikfrom



Joined: 20 May 2015
Posts: 4

PostPosted: Thu May 21, 2015 8:02 am    Post subject: Reply with quote

Работает! Большое вам спасибо!
Back to top
View user's profile Send private message
DV



Joined: 16 Nov 2006
Posts: 897
Location: Kyiv, Ukraine

PostPosted: Thu May 21, 2015 2:10 pm    Post subject: Reply with quote

В использовании [\s\S]*? вместо .*? есть какой-то нюанс?
Back to top
View user's profile Send private message
YuS



Joined: 15 Sep 2013
Posts: 182

PostPosted: Thu May 21, 2015 3:41 pm    Post subject: Reply with quote

DV wrote:
В использовании [\s\S]*? вместо .*? есть какой-то нюанс?

Угу, правила регэкспов в SearchReplace отличаются от правил самого AP, в данном случае .*? не захватит \n, т.е. совпадения не будет найдено.
Back to top
View user's profile Send private message
mihanus_sa



Joined: 24 Feb 2012
Posts: 16

PostPosted: Wed May 27, 2015 7:01 pm    Post subject: Reply with quote

Имеется документ на 60000 строк.
Пример содержания документа
Code:
^(?i) * Спишь?{0,5}$

Ага! А ответил тебе тогда кто??
Да. Сплю. Во сне печатаю.

^(?i)(.*)(Пр(и|е|ю).{0,5}(вет|т|в|д|ф|тик|ветствую ).{0,8}|х(а|о|е)й |re|ку|(ку-ку)|hello|q|hi|hey|здоро(в|ф|а(лл|л)оха|холла|хе(лл|л)(оу|о)|\*HI\*).{0,}).{0,}$

Здорова
Привет привет

^(?i)(.*)((Ч|ш|ф|х)(то|е) (такое|за) )(.{0,15})(!{0,})$

ммм... $6... - это такая штука...
ммм... $6... Ну это...
Сам  не знаю.

^(?i) * Спишь?{0,5}$

Да
Нет
Не очень

^(?i)(.*)(Пр(и|е|ю).{0,5}(вет|т|в|д|ф|тик|ветствую ).{0,8}|х(а|о|е)й |re|ку|(ку-ку)|hello|q|hi|hey|здоро(в|ф|а(лл|л)оха|холла|хе(лл|л)(оу|о)|\*HI\*).{0,}).{0,}$

Я слушаю
И тебе не болеть

Все запросы начинаются на ^(?i), некоторые на ^(?i)(.*). В документе есть пробелы, которые удалять нельзя. Автоматическое удаление дубликатов не пойдёт, т.к. необходимо найти и подсветить дубликаты(по запросу или по ответам на запрос не важно) в тексте, чтобы можно было их грамотно объединить. Пробовал Format::LineGetDuplicates, Coder::HighLight и FileInfo.js, но необходимого результата не принесло. Поступило предложение попробовать FindReplaceEx.js
Code:
Что: (^[^\n]*(?<!=====================)$)(\n.*?)\1$
Чем: \1\2\1=====================
чтобы получить примерно это
Code:
^(?i) * Спишь?{0,5}$=====================

Да
Нет
Не очень.
Еще бы.

^(?i) * Спишь?{0,5}$=====================
eue

^(?i) * Спишь?{0,5}$=====================
угу
ага
Да=====================
нет

^(?i) * Спишь?{0,5}$=====================
конечно
НЕТ
нет=====================
да
но Количество Замен: 0 и он даже не ищет. Подскажите в каком направлении копать. Заранее благодарен.
Back to top
View user's profile Send private message
YuS



Joined: 15 Sep 2013
Posts: 182

PostPosted: Thu May 28, 2015 2:22 am    Post subject: Reply with quote

mihanus_sa wrote:
но Количество Замен: 0 и он даже не ищет.

Хмм, так у Вас получается, что не работает совсем регулярка...
Тогда надо начать с версии AP, как минимум, ибо в разных версиях поведение работы регэкспов менялось.
Back to top
View user's profile Send private message
mihanus_sa



Joined: 24 Feb 2012
Posts: 16

PostPosted: Thu May 28, 2015 9:05 am    Post subject: Reply with quote

YuS wrote:
надо начать с версии AP, как минимум, ибо в разных версиях поведение работы регэкспов менялось.

как это определить? ставить 100500 версий? или есть какой то чейнджлог по которому это определить можно?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Goto page Previous  1, 2, 3 ... 16, 17, 18
Page 18 of 18

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group