[ID CC-CC2022] Помогите создать GREP

  • Автор темы Автор темы sashamo
  • Дата начала Дата начала

sashamo

Топикстартер
10 лет на форуме
Сообщения
547
Реакции
13
Здравствуйте! Есть такие строчки **ываываываываиыапзтщызь
ывапвыапждлфузъкпохвашо
вдлфваиваиваи

фывывдлывтдлыв
кузщшукщртфвжадит

Извините я условно хотел показать. То есть надо создать greep замену которая ищет две звездочки ** и далее все строчки сколько их там есть до двойного абзаца заменяет на нужный параграфный стиль.

Начало я понял \*{2} а дальше никак. Помогите пожалуйста.
 
Спасибо, учту :). И все же... как продолжить выделение до двойного знака абзаца?
 
Спасибо, учту :). И все же... как продолжить выделение до двойного знака абзаца?
Это выражение находит две звездочки в начале абзаца и выделяет текущий абзац и два последующих.
Код:
^\*{2}.+\r.+\r.+\r
 
  • Спасибо
Реакции: sashamo
DenSen спасибо но немного не то. Абзацев может быть и 2 и 3 и 4 5-6.... то есть всегда по разному. Важно чтоб оно делало выделение до второго пустого абзаца. То есть если после обзаца идет текст тогда оно выделяет и эту строчку, а если после обзаца идет пустой абазац тогда прекращает выделение. Как то так.
 
Последнее редактирование модератором:
интересно. вы всегда будете надеяться, что за вас сделают на форуме? или таки поучите чего-нибудь?

Код:
^\*{2}(.+\r)+(?<=\r)
 
  • Спасибо
Реакции: lexter77 и sashamo
я понимаю, когда случай трудный. но тут-то всё легче лёгкого. причём уже словами сформулировано. осталось только записать выражение
 
Так я и пробую учится насколько хватает ресурсов. Но пока только азы получаются.
 
так это выражение и есть азы)))

ищем 2 звезочки в начале параграфа - ^\*{2}
после которых идёт любое количество параграфов - (.+\r)+
и после найденного должен быть пустой параграф - (?<=\r)

"азее" некуда
 
? первое < начало абзаца =\r означает пустой абзац. Я прaвильно понял?
 
правильней, коненчно, вот так. простите. не проверял в ид, писал по памяти

^\*{2}(.+\r)+(?<=\r)
 
Последнее редактирование:
))) вот же. упорно рука < ставит)
переклинило

^\*{2}(.+\r)+(?=\r)
 
Последнее редактирование:
  • Спасибо
Реакции: Serbel и RIKITIKI
А не достаточно ли просто ^\*{2}(.+\r)+ поскольку (.+\r)+ и так подразумевает непустые абзацы :)
 
должно хватить)

но только в том случае, что конструкция

**траляляля
**траляля

должна обрабатываться как желает ТС
(ибо меж этими абзацами не выполняется условие "пустого")
 
Последнее редактирование:
Хм, я сообразил, что конкретно хочет TC, только после его слов о пустом абзаце. А вроде бы всё по-русски было объяснено.
должно хватить)
Теперь нужно правильно завершить поиск.
а) ^\*{2}(.+\r)+(?=\r) - поиск останавливается после обнаружения последнего пустого абзаца;
б) ^\*{2}(.+\r)+(?<=\r) - поиск продолжается после обнаружения последнего пустого абзаца и останавливается на последнем найденном \r (т.е. последний абзац остается невыделенным);
в) ^\*{2}(.+\r)+ - аналогично п. б), но исключительно эстетичный вид;
г) ^\*{2}(.+\r)+.+ - аналогично п. б), но еще и выделяет последний абзац.
 
  • Спасибо
Реакции: sashamo