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

sashamo

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

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

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

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

sashamo

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

densen

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

sashamo

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

andrejK

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

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

andrejK

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

sashamo

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

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218
так это выражение и есть азы)))

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

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

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218

sashamo

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

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218
правильней, коненчно, вот так. простите. не проверял в ид, писал по памяти

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

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218
))) вот же. упорно рука < ставит)
переклинило

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

wizzle

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

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218
должно хватить)

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

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

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

densen

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