поиск и замена
- Author
- Message
-
Offline
- Posts: 12
- Joined: Fri Oct 24, 2008 4:05 am
- Location: где то рядом была Москва
Ребята, помогите неучу)
Как в большом тхт файле удалить всё, кроме строк в квадратных скобках? Сами скобки можно и не удалять.
Простейшее вроде)
Например:
[Blob Storage *]
LangSecRef=3029
Detect1=HKCU\Software\7Star\7Star
Detect2=HKCU\Software\360Browser\Browser
...и тд..
вот нужно оставить только [Blob Storage *] и последующие такие же
Как в большом тхт файле удалить всё, кроме строк в квадратных скобках? Сами скобки можно и не удалять.
Простейшее вроде)
Например:
[Blob Storage *]
LangSecRef=3029
Detect1=HKCU\Software\7Star\7Star
Detect2=HKCU\Software\360Browser\Browser
...и тд..
вот нужно оставить только [Blob Storage *] и последующие такие же
-
Offline
- Posts: 874
- Joined: Sat Jan 16, 2010 2:03 pm
FiLinX
Если имеете дело только с такими "вырожденными"* случаями, как представлено в вашем примере, то проще использовать стандартный скрипт "LinesFilter.js"

* под "невырожденными" здесь подразумеваю:
1) строки внутри строк2) многострочные блоки 3) совмещение первых двух.
Если имеете дело только с такими "вырожденными"* случаями, как представлено в вашем примере, то проще использовать стандартный скрипт "LinesFilter.js"

* под "невырожденными" здесь подразумеваю:
1) строки внутри строк
Code: Select all
убрать--убрать--[оставить-оставить-оставить]-убрать--убрать.
Code: Select all
[-оставить-1
-оставить-2
...
-оставить-n]
-
Offline
- Posts: 2
- Joined: Thu Dec 10, 2020 2:10 pm
Находил тут решение для рандомного перемешивания строк. Но, возможно ли реализовать рандомное перемешивание, назову это - "групп строк" (при этом количество самих строк в каждой группе может быть разным)? Есть файл такого вида: Соответственно, "группа строк 1":"Группа строк 2"
И т.д. Ищется каждая из таких "групп строк" регулярным выражением:
Code: Select all
?1
Текст
+ Текст
- Текст
- Текст
- Текст
?2
Текст
- Текст
- Текст
?3
Текст
- Текст
- Текст
+ Текст
- Текст
- Текст
И т.д.
Code: Select all
?1
Текст
+ Текст
- Текст
- Текст
- Текст
Code: Select all
?2
Текст
- Текст
- Текст
Code: Select all
(\?.(.|\n)*?)(?=\n\?)
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
cellleexx
Не совсем понятно, форматируется ли base64-строка принудительными переводами строк, но можно попробовать вот так:
Если переводов строк нет, можно урезать до
Не совсем понятно, форматируется ли base64-строка принудительными переводами строк, но можно попробовать вот так:
Code: Select all
^PHOTO;ENCODING=BASE64;\w+:[\da-zA-Z/\+\s]+=*(?=[\r\n]+[A-Z]+[:;])
Code: Select all
^PHOTO;[^\r\n]+
-
Offline
- Posts: 3
- Joined: Tue Jan 31, 2017 5:32 pm
Re: Поиск и замена: справочная информация
Вам, в итоге, удалось найти аналог Notepad++-овского .*??PadeDown wrote:* - любое количество символов, но программа его понимает буквально.
Upd.
?Infocatcher wrote:Code: Select all
[^\r\n]+
-
Offline
- Posts: 8
- Joined: Fri Jul 02, 2021 4:32 pm
Вот в том и дело, что там переводы строк, я не знал как сделать. Такую строку в поле поиска я не осилил. Первый вариант сработал!Infocatcher wrote:cellleexx
Не совсем понятно, форматируется ли base64-строка принудительными переводами строк, но можно попробовать вот так:Если переводов строк нет, можно урезать доCode: Select all
^PHOTO;ENCODING=BASE64;\w+:[\da-zA-Z/\+\s]+=*(?=[\r\n]+[A-Z]+[:;])
Code: Select all
^PHOTO;[^\r\n]+
Спасибо тебе тебе добрый человек, Infocatcher ты мне очень помог! Счастья тебе и удачи и всего наилучшего)!
-
Offline
- Posts: 874
- Joined: Sat Jan 16, 2010 2:03 pm
cellleexx
1. Ну так-то было бы нелишним приводить тестовые примеры в виде текста, а не изображения. Это бы упростило жизнь отвечающим (меньше предположений строить).
2. Если, как оказалось, "там переводы строк", то можно (теперь) предположить, что все "лишние" строки (кроме первой) начинаются с пробела.
Если это так, тогда ещё можно использовать "вилку" из двух регулярных выражений: 1) искать строку, начинающуюся с "PHOTO;" 2) искать строку, начинающуюся с пробела:
UPD.: Вообще-то я, скорее всего, не прав. Такой метод можно использовать только если искомый блок идет под удаление. Если же его нужно чем-то заменить, то "фрагментировать" блок на строки нельзя.
1. Ну так-то было бы нелишним приводить тестовые примеры в виде текста, а не изображения. Это бы упростило жизнь отвечающим (меньше предположений строить).
2. Если, как оказалось, "там переводы строк", то можно (теперь) предположить, что все "лишние" строки (кроме первой) начинаются с пробела.
Если это так, тогда ещё можно использовать "вилку" из двух регулярных выражений: 1) искать строку, начинающуюся с "PHOTO;" 2) искать строку, начинающуюся с пробела:
Code: Select all
(?-s)(^PHOTO;.*|^\s.*)
Last edited by opk44 on Thu Jul 15, 2021 3:12 pm, edited 1 time in total.
-
Offline
- Posts: 874
- Joined: Sat Jan 16, 2010 2:03 pm
Красивого решения в голову не приходит, но можно попробовать искать "механически": "X строка"+"X строка"+"Y строка"+"X строка"cellleexx wrote:Как выделить для замены найденую строку плюс (например) две предыдущие верхние и одну следующую...
Code: Select all
^.*$\n^.*$\n(FN:c)\n^.*$\n