[ID CS4-CS6] Поиск текста GREP

ewa

Участник
Топикстартер
Сообщения
9
Реакции
0
Если УС1 - #, а УС2 - ##, то у меня получилось такое:
Код:
(#.*\r)([^#]+\r)+?.+?\r*?##
Ваще ничего не понял, но работает! Спасибо!
...и ещё два вопроса тогда ))
Во-первых, не могли бы вы пояснить по шагам, как это работает?
А во-вторых, можно вас попросить тогда дописать, чтобы ловило и вторую половину, то есть от ## до ближайшего #. Понятно, что если вторым прогоном, то просто меняем эти символы в вашем коде. А сразу -- одним прогоном -- можно? Чтобы выделялось всё между ближайшими #, содержащее внутри ##?
 

afalbert

10 лет на форуме
Сообщения
127
Реакции
92
Во-первых, не могли бы вы пояснить по шагам, как это работает?
во-первых ГРЕП для писателей , а не для читателей. на следующий день уже сложно понять что написано:)
во-вторых, чтобы пояснить по шагам надо написать много букв, а это сложно , поэтому почитайте что-нибудь про греп в интернете

но примерно так:
(
# означает #
. любой символ
* эти любые символы могут быть, а могут не быть
\r конец абзаца
)
(
[^#] любой символ кроме #
+ этих символов один или много
\r конец абзаца
)
+? то что в предыдущих скобках один или много раз, но "жадный" поиск
. любой символ
+? предыдущий символ один или много раз, но "жадный" поиск
\r конец абзаца
*? предыдущий символ может быть от 0 до много, "жадный" поиск
## означает ##

т.е. ищется # , после которой могут быть любые символы, потом конец абзаца, потом может быть несколько абзацев в которых не должно быть решетки, потом должны быть 2 решетки. (конец абзаца не является любым символом, а решетка является любым символом, поэтому возникают все эти сложности...)
 
  • Спасибо
Реакции: suntory

afalbert

10 лет на форуме
Сообщения
127
Реакции
92
во-первых ГРЕП для писателей , а не для читателей. на следующий день уже сложно понять что написано:)
во-вторых, чтобы пояснить по шагам надо написать много букв, а это сложно , поэтому почитайте что-нибудь про греп в интернете

но примерно так:
(
# означает #
. любой символ
* эти любые символы могут быть, а могут не быть
\r конец абзаца
)
(
[^#] любой символ кроме #
+ этих символов один или много
\r конец абзаца
)
+? то что в предыдущих скобках один или много раз, но "жадный" поиск
. любой символ
+? предыдущий символ один или много раз, но "жадный" поиск
\r конец абзаца
*? предыдущий символ может быть от 0 до много, "жадный" поиск
## означает ##

т.е. ищется # , после которой могут быть любые символы, потом конец абзаца, потом может быть несколько абзацев в которых не должно быть решетки, потом должны быть 2 решетки. (конец абзаца не является любым символом, а решетка является любым символом, поэтому возникают все эти сложности...)
и тут слово "жадный" надо заменить на "ленивый". извините :)