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

sashamo

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

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

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

Начало я понял \*{2} а дальше никак. Помогите пожалуйста.
 

sashamo

Топикстартер
10 лет на форуме
Сообщения
486
Реакции
9
Спасибо, учту :). И все же... как продолжить выделение до двойного знака абзаца?
 

DenSen

15 лет на форуме
Сообщения
185
Реакции
72
Спасибо, учту :). И все же... как продолжить выделение до двойного знака абзаца?
Это выражение находит две звездочки в начале абзаца и выделяет текущий абзац и два последующих.
Код:
^\*{2}.+\r.+\r.+\r
 
  • Спасибо
Реакции: sashamo

sashamo

Топикстартер
10 лет на форуме
Сообщения
486
Реакции
9
DenSen спасибо но немного не то. Абзацев может быть и 2 и 3 и 4 5-6.... то есть всегда по разному. Важно чтоб оно делало выделение до второго пустого абзаца. То есть если после обзаца идет текст тогда оно выделяет и эту строчку, а если после обзаца идет пустой абазац тогда прекращает выделение. Как то так.
 
Последнее редактирование модератором:

andrejK

15 лет на форуме
Сообщения
10 304
Реакции
5 214
интересно. вы всегда будете надеяться, что за вас сделают на форуме? или таки поучите чего-нибудь?

Код:
^\*{2}(.+\r)+(?<=\r)
 
  • Спасибо
Реакции: lexter77 и sashamo

andrejK

15 лет на форуме
Сообщения
10 304
Реакции
5 214
я понимаю, когда случай трудный. но тут-то всё легче лёгкого. причём уже словами сформулировано. осталось только записать выражение
 

sashamo

Топикстартер
10 лет на форуме
Сообщения
486
Реакции
9
Так я и пробую учится насколько хватает ресурсов. Но пока только азы получаются.
 

andrejK

15 лет на форуме
Сообщения
10 304
Реакции
5 214
так это выражение и есть азы)))

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

"азее" некуда
 

andrejK

15 лет на форуме
Сообщения
10 304
Реакции
5 214

sashamo

Топикстартер
10 лет на форуме
Сообщения
486
Реакции
9
? первое < начало абзаца =\r означает пустой абзац. Я прaвильно понял?
 

andrejK

15 лет на форуме
Сообщения
10 304
Реакции
5 214
правильней, коненчно, вот так. простите. не проверял в ид, писал по памяти

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

andrejK

15 лет на форуме
Сообщения
10 304
Реакции
5 214
))) вот же. упорно рука < ставит)
переклинило

^\*{2}(.+\r)+(?=\r)
 
Последнее редактирование:
  • Спасибо
Реакции: Serbel и RIKITIKI

wizzle

Участник
Сообщения
12
Реакции
2
А не достаточно ли просто ^\*{2}(.+\r)+ поскольку (.+\r)+ и так подразумевает непустые абзацы :)
 

andrejK

15 лет на форуме
Сообщения
10 304
Реакции
5 214
должно хватить)

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

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

должна обрабатываться как желает ТС
(ибо меж этими абзацами не выполняется условие "пустого")
 
Последнее редактирование:

DenSen

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