| View previous topic :: View next topic |
| Author |
Message |
VladSh
Joined: 29 Nov 2006 Posts: 2507 Location: Киев, Русь
|
Posted: Wed Sep 26, 2012 10:05 pm Post subject: |
|
|
Жаль, что загадили тему регулярками, хотя для них есть специальная тема...
Instructor, можно ли перенести все вопросо-ответы по регуляркам в ТУ тему? А то обсуждение теряется в куче всего этого добра.
Было когда-то реализованное предложение (спасибо!)
Редактировал много текста с заменами и обнаружилось, что при открытом диалоге поиска если выделить текст, а потом вызвать диалог замены, то сам диалог переключится с поиска на замену, а вот выделенный текст не подхватится.
Сильно прошу подправить это, - хотелось бы иметь и такую удобняшку  |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4638
|
Posted: Sat Sep 29, 2012 5:54 am Post subject: |
|
|
| VladSh wrote: | | ...а вот выделенный текст не подхватится. | Это к QSearch::DialogSwitcher. |
|
| Back to top |
|
 |
mihanus_sa
Joined: 24 Feb 2012 Posts: 9
|
Posted: Sat Oct 13, 2012 10:39 pm Post subject: |
|
|
Всем доброго времени суток. Уже который день бьюсь. Есть строчка | Code: | | address="938503" date="1260012216000" type="1" subject="null" body="лол" toa="null" sc_toa="null" service_center="null" read="1" status="-1" /> |
к ней перед /> ,после status="-1" надо вставить
| Code: | | locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="(Unknown)" |
пробовал что то сделать в SearchReplace.js
| Code: | Что: address="(\d+)" date="1260012216000" type="1" subject="null" body="лол" toa="null" sc_toa="null" service_center="null" read="1" status="-1" (\d+)/>\n
Чем: address=" $1" date="1260012216000" type="1" subject="null" body="лол" toa="null" sc_toa="null" service_center="null" read="1" status="-1" $2/>\n |
но что то получился бред,как получить результат не знаю
Помогите пожалуйста. Заранее спасибо |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4638
|
Posted: Tue Oct 16, 2012 3:19 pm Post subject: |
|
|
mihanus_sa
Что:
Чем: | Code: | status="-1" locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="(Unknown)" />
|
 |
|
| Back to top |
|
 |
mihanus_sa
Joined: 24 Feb 2012 Posts: 9
|
Posted: Tue Oct 16, 2012 10:05 pm Post subject: |
|
|
| Instructor wrote: | mihanus_sa
Что:
Чем: | Code: | status="-1" locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="(Unknown)" />
|
 |
проблема в том,что определённому
своё
| Code: | | locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="(Unknown)" |
но есть много повторяющихся address, и как сделать чтобы к
добавлялось
| Code: | | locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="человек" |
а к
добавлялось
| Code: | | locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="животное" |
|
|
| Back to top |
|
 |
KDJ
Joined: 06 Mar 2010 Posts: 1066 Location: Poland
|
Posted: Wed Oct 17, 2012 7:14 am Post subject: |
|
|
mihanus_sa
SearchReplace.js with Regular expressions:
Что: | Code: | | (address="\d+" date="1260012216000" type="1" subject="null" body="лол" toa="null" sc_toa="null" service_center="null" read="1" status="-1" )(/>) |
Чем: | Code: | | $1locked="0" date_sent="1349140127000" readable_date="02.10.2012 5:08:55" contact_name="(Unknown)"$2 |
|
|
| Back to top |
|
 |
shveicar
Joined: 29 Nov 2012 Posts: 16
|
Posted: Thu Nov 29, 2012 12:02 pm Post subject: |
|
|
Здравствуйте.
Вопрос следующий:
Можно ли с помощью регулярных выражений в AkelPad - организовать приращивание значения по счетчику?
Например, - в тексте много фрагментов вида image_56784.jpg, image_994422.jpg и других подобных. Их можно обозначить в поиске одной фразой -
а в замене нужно, чтобы каждый попадающийся фрагмент увеличивался на 1 - то есть: первый попавшийся фрагмент заменялся на image_001.jpg
Второй попавшийся фрагмент на image_002.jpg и так далее - до конца текста.
Спасибо. |
|
| Back to top |
|
 |
Infocatcher
Joined: 06 Aug 2007 Posts: 1431
|
Posted: Thu Nov 29, 2012 12:45 pm Post subject: |
|
|
shveicar
SearchReplace.js, для «заменить все»:
Что: image_([0-9]+)\.jpg
Чем: var f = arguments.callee; var i = f.i || 0; f.i = ++i; return "image_" + "000".substr(String(i).length) + i + ".jpg";
[v] Заменять на функцию
Или
Чем: if(typeof _counter == "undefined") _counter = 0; var i = ++_counter; return "image_" + "000".substr(String(i).length) + i + ".jpg";
Но для сброса счетчика надо переоткрывать диалог замены. |
|
| Back to top |
|
 |
shveicar
Joined: 29 Nov 2012 Posts: 16
|
Posted: Thu Nov 29, 2012 2:11 pm Post subject: |
|
|
Infocatcher
Спасибо за помощь, только с текущим фрагментом
| Code: | MIME-Version: 1.0
Content-Type: application/octet-stream; name="pack.txt.7Z"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="pack.txt.7Z"
N3q8ryccAAOj4tJjxgEAAAAAAABSAAAAAAAAAKhEe1YAHhsJI+D3tYaOIDoMltif9p+czMeDVxmK
xX85VQYnFaGey4Navv6qXFGyqkdPJcRy5LxPA2cmxsOzrbJ5POOX39NutJYAD1wnjkdCH2uNpVcF
yHzLuO4+p2r+AKMzlw2uyMfD6BKx50Z0Z+jobQZ9ty0ij6zZcMwbse/oIpVvbAWH4JRJWkidVs7e
LBacJLIucDW9N/h6YXsZPF+jmTvtiqrYatjvn90s8hCVIXw+n5kwVtgYQraktsnM3njhC2CJHJ54
DnIIo8IILPkiW5ie3/ku5nFRLQodjMNSHc24HaKhfqpJPOrK/8bM6tXIA+gRhXpi6qc6jTxoe80L
cq6eMwE+nQPv9VblBLnBHsBEJsIKya4Hvcq/d4DB+NfdjdcWGtIGrmC4mIUrpiYBsxAV+TsSsVEx
0bYOSCGdzH4xJ7jJrrtQvin53yI/9nbuXcHjP/sSRtHcqXmiO2S8MpSyS6o8IaYdcPo4zw7sRtKi
1ddMBTifPmVeJ++H1VZMSwccOhrcrR3OD/dZ7b5vlV+x5CEpoILFz/3ruyRrsmkPEbvRpf8bibMj
cXlfaffqiiApWhri72JVLoZK2aP7u5CpYGc6escAAQQGAAEJgcYABwsBAAEjAwEBBV0AAAEADJCF
AAgKAVlqI0QAAAUBERMAQgQ1BEEEQgQuAHQAeAB0AAAAFAoBAJ49axg6zs0BFQYBACAAAAAAAA== |
не срабатывает - выдает 0 замен. ,возможно дело в обрамляющих символах(" < и др)?
по аналогии с примером:
поиск | Code: | | files/([0-9]+)\.jpg |
замена: | Code: | | var f = arguments.callee; var i = f.i || 0; f.i = ++i; return "files/" + "000".substr(String(i).length) + i + ".jpg"; |
|
|
| Back to top |
|
 |
Infocatcher
Joined: 06 Aug 2007 Posts: 1431
|
Posted: Thu Nov 29, 2012 3:31 pm Post subject: |
|
|
shveicar
У меня 51 замена.
Там случайно пробел после «что» не скопировался? |
|
| Back to top |
|
 |
shveicar
Joined: 29 Nov 2012 Posts: 16
|
Posted: Thu Nov 29, 2012 4:51 pm Post subject: |
|
|
| Infocatcher wrote: |
Там случайно пробел после «что» не скопировался? |
Дело было в знаке \ перед.jpg - Убрал его, - и все заработало.
Большое спасибо. |
|
| Back to top |
|
 |
shveicar
Joined: 29 Nov 2012 Posts: 16
|
Posted: Mon Dec 03, 2012 1:16 pm Post subject: |
|
|
Здравствуйте.
Нужна помощь, - необходимо
Заменить каждый найденные фрагмент в документе html - вида alt"=1-999", alt"=2-999", alt"=3-999" и т.д
на строки из файла списка типа например:
| Code: |
1 природа(1).jpg
2 природа(2).jpg
3 Природа(3).jpg
|
То есть, каждая первая цифра в начале строки, - замениться на соответствующую в теге а значение -999 будет удалено.
Видимо опять нужно задействовать скрипт SearchReplace.js...
Или есть - какие либо другие решения?
P.s главное, - чтобы поддерживалась обработка всех открытых документов..
Спасибо. |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1888 Location: Vinnitsa, Ukraine
|
Posted: Mon Dec 03, 2012 5:26 pm Post subject: |
|
|
| Впринципе это выполнимо с помощью SearchReplace.js, но очень криво. И будет очень медленно(ибо будет выполнятся чтение файла с именами при каждой замене). Нужно писать скрипт. Разве что таких имен у вас совсем чуть-чуть(не более двух десятков, и при этом из файлика придется вручную перенести и переформатировать список в строку замены) - тогда есть шанс что не запутаетесь в строке замены. Либо просим автора доделать скрипт: добавить процедуру преинициализации поиска. |
|
| Back to top |
|
 |
Infocatcher
Joined: 06 Aug 2007 Posts: 1431
|
Posted: Mon Dec 03, 2012 5:44 pm Post subject: |
|
|
| FeyFre wrote: | | (ибо будет выполнятся чтение файла с именами при каждой замене) |
Не обязательно:
Что: alt="[^"]+"
Чем:
| Code: | | var f = arguments.callee; if(!f.i) { f.i = 0; f.lines = AkelPad.ReadFile("D:\\names.txt").split(/\r\n?|\n\r?/); } return 'alt="' + f.lines[f.i++ % f.lines.length] + '"'; |
Можно даже сделать по аналогии с предыдущим вариантом для Найти/Заменить (где проверка через typeof и объявление переменной без var), только он менее удобный, по-моему. |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1888 Location: Vinnitsa, Ukraine
|
Posted: Mon Dec 03, 2012 7:24 pm Post subject: |
|
|
Infocatcher
Оно то так, но согласитесь как-то совсем не удобно, не говорю уже что не шарящему в ECMA совсем не понятно. Вот было бы поле для одноразовой/по требованию пре-инициализации, вот тогда было бы супер. |
|
| Back to top |
|
 |
|