Для начала, дайте пример файла.ezjikfrom wrote: Подскажите, пожалуйста, как это сделать в AkelPade
поиск и замена
- Author
- Message
-
Offline
- Posts: 512
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
Re: Вопрос по функционалу: копирование и вставка в нужные по
-
Offline
- Posts: 6
- Joined: Wed May 20, 2015 9:36 am
Вот пример 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>
</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>
-
Offline
- Posts: 512
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
По аналогии отсюда (спасибо KDJ):ezjikfrom wrote:Вот пример xml. Два товара для примера (там их тысячи). Нужно скопировать ссылку из url в descripshion, добавить к существующей там информации
Скрипт SearchReplace.js
+ Регулярные выражения
+ Заменять на функцию
Code: Select all
Что: (<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>");
-
Offline
- Posts: 512
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
-
Offline
- Posts: 18
- Joined: Fri Feb 24, 2012 1:12 pm
поиск дубликатов
Уже перепробовал весь существующий софт по поиску дубликатов, поэтому вся надежда на Вашу помощь.
Имеется документ на 60000 строк.
пример содержания документа
В документе есть пробелы, которые удалять нельзя. А есть не полные дубликаты, т.е. вопрос может повторяться, а ответы будут разные.
Автоматическое удаление дубликатов не пойдёт.
Необходимо найти и подсветить дубликаты(по вопросу или по ответу не важно) в тексте, чтобы можно было их грамотно объединить. Пробовал Format::LineGetDuplicates, Coder::HighLight и FileInfo.js, но необходимого результата не принесло. Вообще возможно ли это? Заранее благодарен.
Имеется документ на 60000 строк.
пример содержания документа
Code: Select all
^(?i) * Спишь?{0,5}$
Ага! А ответил тебе тогда кто??
Да. Сплю. Во сне печатаю.
^(?i) *Ты (.{1,9})(!{0,})$
Сам $1!
Сам ты $1
^(?i)(.*)((Ч|ш|ф|х)(то|е) (такое|за) )(.{0,15})(!{0,})$
ммм... $6... - это такая штука...
ммм... $6... Ну это...
Сам не знаю.
^(?i) * Спишь?{0,5}$
Да
Нет
Не очень.
Еще бы.
Code: Select all
^(?i) * Спишь?{0,5}$
Автоматическое удаление дубликатов не пойдёт.
Необходимо найти и подсветить дубликаты(по вопросу или по ответу не важно) в тексте, чтобы можно было их грамотно объединить. Пробовал Format::LineGetDuplicates, Coder::HighLight и FileInfo.js, но необходимого результата не принесло. Вообще возможно ли это? Заранее благодарен.
-
Offline
- Posts: 512
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
Re: поиск дубликатов
Дубликаты посреди текста найти-то можно, но что с ними делать дальше? Ваша задача либо неполностью описана, либо придется всё разбирать вручную...mihanus_sa wrote:Вообще возможно ли это? Заранее благодарен.
Могу предложить построчный поиск дубликатов (т.е. будут искаться дубликаты строк, а не отдельные слова) с дальнейшей вставкой какой-либо метки, но от ручного разбора, всё равно не избавиться.
FindReplaceEx.js
Code: Select all
Что: (^[^\n]*(?<!=====================)$)(\n.*?)\1$
Чем: \1\2\1=====================
Поиск/Замену производить в несколько проходов. Можно кнопкой "Заменить всё", но также в несколько проходов до тех пор, пока не будет "Количество замен: 0".
В общем, где-то так получается:
-
Offline
- Posts: 18
- Joined: Fri Feb 24, 2012 1:12 pm
Re: поиск дубликатов
дальше если встречается два одинаковых запроса напримерYuS wrote:Дубликаты посреди текста найти-то можно, но что с ними делать дальше?
Code: Select all
^(?i)(.*)((Ч|ш|ф|х)(то|е) (такое|за) )(.{0,15})(!{0,})$
найдёт ли он запрос аналогичный этомуYuS wrote: Могу предложить построчный поиск дубликатов (т.е. будут искаться дубликаты строк, а не отдельные слова) с дальнейшей вставкой какой-либо метки, но от ручного разбора, всё равно не избавиться.
FindReplaceEx.jsВ итоге у дубликата строки добавляются символы "===...", а единственный "оригинал" строки остается без маркировки.Code: Select all
Что: (^[^\n]*(?<!=====================)$)(\n.*?)\1$ Чем: \1\2\1=====================
Поиск/Замену производить в несколько проходов. Можно кнопкой "Заменить всё", но также в несколько проходов до тех пор, пока не будет "Количество замен: 0".
Code: Select all
^(?i)(.*)(((\=)|(\%)\))|(\)\))|O\:\-\)|O\:\)|O\+\)||O\=\)|\;\D).{0,}$
Code: Select all
^(?i)(.*)(Пр(и|е|ю).{0,5}(вет|т|в|д|ф|тик|ветствую ).{0,8}|х(а|о|е)й |re|ку|(ку-ку)|hello|q|hi|hey|здоро(в|ф|а(лл|л)оха|холла|хе(лл|л)(оу|о)|\*HI\*).{0,}).{0,}$
-
Offline
- Posts: 512
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
Re: поиск дубликатов
Вы предлагаете это мне проверять?mihanus_sa wrote: найдёт ли он запрос аналогичный этому
...
или этому?
...
Пробуйте, тестируйте, проверяйте - могу только подсказать или проверить, если что-то совсем не получается... мне-то это точно не нужно.
-
Offline
- Posts: 18
- Joined: Fri Feb 24, 2012 1:12 pm
Re: поиск дубликатов
нет, но идея с пометкой отличная, вот только после долгого выполнения Количество Замен: 0YuS wrote:Вы предлагаете это мне проверять?
Пробуйте, тестируйте, проверяйте - могу только подсказать или проверить, если что-то совсем не получается... мне-то это точно не нужно.
-
Offline
- Posts: 512
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
Re: поиск дубликатов
Ну, с этим ничего не сделать, т.к. регулярка с многостроковым захватом любых символов, не позволит алгоритму автоматически возвращаться к началу, для проверки того, что было захвачено... даже при условии наличия опции "по кругу".mihanus_sa wrote: вот только после долгого выполнения Количество Замен: 0
Но есть выход, можно воспользоваться пакетами, т.е. один шаблон несколько раз добавить в пакет и затем запустить этот пакет. В общем, количество строк в пакете и количество запусков пакета можно варьировать, т.е. опытным путем подобрать оптимальное сочетание...
-
Offline
- Posts: 18
- Joined: Fri Feb 24, 2012 1:12 pm
Re: поиск дубликатов
а нельзя просто маску поиска более универсальной?YuS wrote:можно воспользоваться пакетами, т.е. один шаблон несколько раз добавить в пакет и затем запустить этот пакет. В общем, количество строк в пакете и количество запусков пакета можно варьировать, т.е. опытным путем подобрать оптимальное сочетание...
-
Offline
- Posts: 512
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
Re: поиск дубликатов
Нет, не получится. Такова логика работы регэкспов.mihanus_sa wrote:а нельзя просто маску поиска более универсальной?
-
Offline
- Posts: 18
- Joined: Fri Feb 24, 2012 1:12 pm
Re: поиск дубликатов
расскажите, пожалуйста, по подробнее что и как сделатьYuS wrote:есть выход, можно воспользоваться пакетами, т.е. один шаблон несколько раз добавить в пакет и затем запустить этот пакет. В общем, количество строк в пакете и количество запусков пакета можно варьировать, т.е. опытным путем подобрать оптимальное сочетание...
а то я, честно говоря, впервые про добавление пакетов слышу