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 ... , 18, 19, 20  Next
 
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: 189

PostPosted: Wed May 27, 2015 1:55 pm    Post subject: Re: поиск дубликатов Reply with quote

mihanus_sa wrote:

расскажите, пожалуйста, по подробнее что и как сделать
а то я, честно говоря, впервые про добавление пакетов слышу

Не мастер я хелпы писать.
Установите скрипт, который вот здесь я упоминал и попробуйте по кнопкам понажимать, там всё достаточно очевидно.
Back to top
View user's profile Send private message
mihanus_sa



Joined: 24 Feb 2012
Posts: 18

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: 189

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: 18

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
YuS



Joined: 15 Sep 2013
Posts: 189

PostPosted: Thu May 28, 2015 11:37 am    Post subject: Reply with quote

mihanus_sa wrote:
ставить 100500 версий? или есть какой то чейнджлог по которому это определить можно?

Зачем ставить все версии? Взять самую свежую и попробовать. Есть и чейнджлог \AkelFiles\Docs\AkelHistory-Rus.txt, и апдейтер тоже есть, с помощью которого можно всегда актуализировать версию AP и скриптов.

Добавлено:
А ещё при копировании строк из форума, надо не забывать удалять зловредный пробел, который добавляется в конце строк... часто это становится причиной неработоспособности регэкспов.
Back to top
View user's profile Send private message
mihanus_sa



Joined: 24 Feb 2012
Posts: 18

PostPosted: Thu May 28, 2015 2:27 pm    Post subject: Reply with quote

YuS wrote:

А ещё при копировании строк из форума, надо не забывать удалять зловредный пробел, который добавляется в конце строк... часто это становится причиной неработоспособности регэкспов.

да, пошёл процесс, вот только появилось несколько вопросов:
1. У Вас на скриншоте и в коде отличаются что чем заменять. В чем разница?
2. Для чего используется ?<! в строке (^[^\n]*(?<!=====================)$)(\n.*?)\1$
заранее благодарю
Back to top
View user's profile Send private message
YuS



Joined: 15 Sep 2013
Posts: 189

PostPosted: Thu May 28, 2015 4:34 pm    Post subject: Reply with quote

mihanus_sa wrote:

1. У Вас на скриншоте и в коде отличаются что чем заменять. В чем разница?

Всё просто: скриншот я сделал во время проверки регэкспа, но для правильной замены использовать нужно то, что приведено текстом. В общем, если не будет того, что в текстовом варианте, то дубликаты будут маркироваться бесконечно, шаблон с каждым новым проходом просто будет добавлять все больше и больше в строку "символов маркировки".

mihanus_sa wrote:

2. Для чего используется ?<!

Это отрицательный lookbehind, иначе то, чего в тексте перед последующим символом быть не должно.
Back to top
View user's profile Send private message
Drimtim



Joined: 30 May 2015
Posts: 2

PostPosted: Sun May 31, 2015 4:13 am    Post subject: Reply with quote

Пожалуйста подскажите, как искать:
боль|боли

Чтобы исключить из результатов больн|больш|болиг

То есть надо находить слова, похожие на боль, обезболивание, боли, чтобы в результатах поиска не было слов, похожих на больной, большой, болиголов.
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5867

PostPosted: Sun May 31, 2015 5:54 pm    Post subject: Reply with quote

Drimtim
Что: бол[ьи][^ншг]

[v] Регулярные выражения
Back to top
View user's profile Send private message Send e-mail
mihanus_sa



Joined: 24 Feb 2012
Posts: 18

PostPosted: Sun May 31, 2015 9:51 pm    Post subject: Reply with quote

YuS wrote:
Всё просто: скриншот я сделал во время проверки регэкспа, но для правильной замены использовать нужно то, что приведено текстом. В общем, если не будет того, что в текстовом варианте, то дубликаты будут маркироваться бесконечно, шаблон с каждым новым проходом просто будет добавлять все больше и больше в строку "символов маркировки".

Огромное спасибо, работает, медленно правда ищет, но учитывая объёмы документа это лучше чем вручную помнить каждую строку Wink
Back to top
View user's profile Send private message
Drimtim



Joined: 30 May 2015
Posts: 2

PostPosted: Mon Jun 01, 2015 4:33 am    Post subject: Reply with quote

Спасибо
Back to top
View user's profile Send private message
ezjikfrom



Joined: 20 May 2015
Posts: 6

PostPosted: Mon Jun 01, 2015 11:20 am    Post subject: Поиск и замена, прошу подсказать. Reply with quote

Добрый день. Помогите подправить функцию. Нужно текст из url перенести в начало description

Ранее уже мне дали решение по замене:
"По аналогии отсюда (спасибо KDJ):
Скрипт SearchReplace.js
+ Регулярные выражения
+ Заменять на функцию
Код:
Что: (<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>");
"

Но теперь у меня xml, где url и description поменялись местами, скрипт берет адрес из url и переносит в description следующей строки, а надо этой же. Самому знаний не хватило, чтобы поправить. Пример кода:

<offers><offer available="true" type="vendor.model" id="LM"><categoryId>7</categoryId><country_of_origin>...</country_of_origin><currencyId>RUR</currencyId><delivery>true</delivery><description>Артикул </description><local_delivery_cost>290</local_delivery_cost><manufacturer_warranty>true</manufacturer_warranty><market_category>Дом и дача/Освещение</market_category><model>Бра-1</model><picture>http://photo</picture><price>970</price><vendor>Lumier</vendor><vendorCode>LM-1</vendorCode><url>https</url><modified_time>1</modified_time><name>Бра-1</name></offer>
Back to top
View user's profile Send private message
YuS



Joined: 15 Sep 2013
Posts: 189

PostPosted: Mon Jun 01, 2015 1:39 pm    Post subject: Re: Поиск и замена, прошу подсказать. Reply with quote

ezjikfrom wrote:
Помогите подправить функцию.
...
скрипт берет адрес из url и переносит в description следующей строки, а надо этой же.

Для этого не надо было новую тему создавать, а в той же теме продолжить...
Все условия такие же, как и в предыдущем шаблоне, меняем только это:
Code:
Что: (<offer [^>]*>[\s\S]*?)(<description>(?! ?http)([\s\S]*?)</description>)([\s\S]*?<url>([\s\S]*?)</url>[\s\S]*?</offer>)
Чем: return $1 + ($2).replace(/<description>[\s\S]*?<\/description>/g, "<description>" + " " + $5 + " " + $3 + "<\/description>") + $4;
Back to top
View user's profile Send private message
ezjikfrom



Joined: 20 May 2015
Posts: 6

PostPosted: Mon Jun 01, 2015 1:56 pm    Post subject: Reply with quote

Сработало. Спасибо огромное Вам за помощь!)
P.S. прошлая тема была закрыта и доступа к ней нет. Пришлось новую создать.
Back to top
View user's profile Send private message
YuS



Joined: 15 Sep 2013
Posts: 189

PostPosted: Mon Jun 01, 2015 2:37 pm    Post subject: Reply with quote

Тема была закрыта потому, что есть аналогичная по смыслу и в неё как раз был перемещен Ваш вопрос. Эта тема вполне доступна...
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 ... , 18, 19, 20  Next
Page 19 of 20

 
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