| View previous topic :: View next topic |
| Author |
Message |
Batya

Joined: 15 Dec 2004 Posts: 2231 Location: Москва, Россия
|
(Separately) Posted: Thu Jul 16, 2026 19:41 Post subject: Примеры регулярных выражений |
|
|
Комрады, прошу помощи. Что-то мозг закипает.
Есть текст вида
| Quote: | _|_123_|_124_|_125_|_123_|_126_|_127
_|_123_|_128_|_129
|
Задача - если в тексте встречается такой же текст, как в начале строки по шаблону "^(_\|_\d+_\|)", заменить на перенос строки такой текст в любом месте строки. Т. е. применительно к указанному примеру заменять нужно исключительно "_|_123_|", и должно получиться:
| Quote: |
_124_|_125
_126_|_127
_128_|_129
|
Заранее число, стоящее в начале строки неизвестно. Но заменять надо только блоки, содержащие число из начала строки.
Соответственно, аналогичный результат должен получиться и, например, для текста:
| Quote: | _|_78_|_124_|_125_|_78_|_126_|_127
_|_78_|_128_|_129
|
Если принципиально, использую поиск в Notepad++. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 1207
|
(Separately) Posted: Fri Jul 17, 2026 12:47 Post subject: |
|
|
| Batya wrote: | | Что-то мозг закипает |
Мозг действительно закипает
| Batya wrote: | | Если принципиально, использую |
А принципально использовать регулярные выражения? Может быть, для данной задачи лучше использовать скрипт?
Я сам никогда не пользовался, но есть, вроде, такие продвинутые вещи, как проверки и заглядывания вперед и назад (assertions: lookahead, lookahead), может быть, они подойдут для решения этой задачи? |
|
| Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2231 Location: Москва, Россия
|
(Separately) Posted: Fri Jul 17, 2026 13:08 Post subject: |
|
|
На работе используется Notepad++. Необходимо оперативно по определённым правилам менять текст в несохранённом документе. Для этого хочу записать Notepad++-макрос. Вот для записи макроса и пытаюсь правильно составить регулярное выражение поиска и замены.
Ключевые моменты - текст, как я говорил, не сохранён в виде файла; буфер обмена при использовании макроса трогать крайне нежелательно.
Ну и для себя пытаюсь разобраться в ранее неосвоенных тонкостях регулярных выражений. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 1207
|
(Separately) Posted: Fri Jul 17, 2026 13:26 Post subject: |
|
|
Batya
Я понял.
Почему бы не подключить к этому делу ИИ? Он меня уже не раз выручал. Главное держать его в узде вопросы правильные к нему формулировать  |
|
| Back to top |
|
 |
yozhik

Joined: 04 May 2014 Posts: 337 Location: Электросталь
|
(Separately) Posted: Fri Jul 17, 2026 20:16 Post subject: |
|
|
Batya
Сейчас нет возможности опробовать (Notepad++ не пользуюсь), но судя по справке должно работать вот это:
| Code: | Найти:
(?m-s)^(_\|_\d+_\|)(.+?\r\n)\1
Заменить:
\2 |
Если в файле окончания строк LF, тогда в поиске \r\n заменить на \n.
Попробуйте, пожалуйста, если не сработает, то скачаю портабельный Notepad++, погоняю. _________________ Amo ergo sum |
|
| Back to top |
|
 |
|
|
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
|
Powered by phpBB © 2001, 2005 phpBB Group
|