Метасимволы ?, ?? и т.п.

  • Автор темы Автор темы LeshikSan
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

LeshikSan

Топикстартер
15 лет на форуме
Сообщения
266
Реакции
185
Господа, пжлста, дайте развернутое пояснение по следующим метасимволам:
? (Один раз)
?? (Один раз - Самое короткое совпадение)
*? (Несколько раз - Самое короткое совпадение)
+? (Один или несколько раз - Самое короткое совпадение)
(?: ) - Без маркировки подвыражения
Не совсем понятно какой именно набор событий за каждым из них закреплен, а так же как на практике можно использовать (?: )
----------
и что означает выражение '\\d' в предыдущем посте?
 
Ответ: GREP в InDesign. Что и как

\\d - поиск любой цифры (так как используется в скрипте, надо слешить слеш :)
и подниму вопрос, почему не работает эта кострукция:
Код:
 grep    {findWhat:"(\\.|,)([а-яА-Я])"}    {changeTo:"$1 $2"}    {}
что надо сделать: найти например "монтаж,замена" и вставить после занятой пробел, но только если запятая/точка между русскими буквами
 
Ответ: GREP в InDesign. Что и как

не работает из-за сдвоенного слеша перед точкой или запятой. Если убрать слеши, будет фунциклтровать, но появится лишний пробел...

Проще написать [А-я]
 
Ответ: GREP в InDesign. Что и как

но ведь код, который ниже, работает в простом GREP поиске.. поэтому я и заслешил
Код:
(\.|,)([А-я])
 
Ответ: GREP в InDesign. Что и как

\\ — символ обратной косой черты (GREP)

\ — символ обратной косой черты (TEXT)
 
Ответ: GREP в InDesign. Что и как

первая строка ставит пробел после любого знака припинания(?), но почему-то добавляет лишний пробел перед каждым словом

grep {findWhat:"(.)([А-я]+)"} {changeTo:"$1 $2"}

второй строкой меняем все двойные и тройные ... пробелы на один

grep {findWhat:"( +)"} {changeTo:" "}

наверное не самый простой и рабочий вариант :)
 
Ответ: GREP в InDesign. Что и как

LeshikSan сказал(а):
Господа, пжлста, дайте развернутое пояснение по следующим метасимволам:
? (Один раз)
?? (Один раз - Самое короткое совпадение)
*? (Несколько раз - Самое короткое совпадение)
+? (Один или несколько раз - Самое короткое совпадение)
(?: ) - Без маркировки подвыражения
Не совсем понятно какой именно набор событий за каждым из них закреплен, а так же как на практике можно использовать (?: )
----------
и что означает выражение '\\d' в предыдущем посте?

знак вопроса означает 0 или 1 раз. Например «colou?r» соответствует и color, и colour.
 
Ответ: GREP в InDesign. Что и как

lex, а остальные?
------------
имеется выражение для поиска предложений (и словосочетаний) в кавычках для замены кавычек на типографские:
поиск [~"“](.+)[~"”]
замена «$1»
проблема в том, что при присутствии в одном абзаце двух предложений (или словосочетаний) в кавычках поиск выделяет оба одним блоком, и как результат - неполная замена кавычек. как с этим справиться? отрицательный просмотр не подходит, т.к. значение исключения нужно вставить внутрь выражения:
[~"“](.+)(?!")(.+)[~"”], что, понятно, не работает
 
Ответ: GREP в InDesign. Что и как

Можна ли задать както задать поиск какогото символа или его отсутствие. Например (\U\l+)(пробел|нет пробела)(\U\.)(пробел|нет пробела)(\U\.) Очень бы помогло с инициалами и фамилиями, например.
 
Ответ: GREP в InDesign. Что и как

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

(пробел?)

ищется 0 или 1 пробел
 
Ответ: GREP в InDesign. Что и как

Пробелом в своей памяти. Спасибо :-)
 
Ответ: GREP в InDesign. Что и как

Здравствуйте.
Как мне в GREP указать что в выражении может быть, а может не быть знака препинания например: ([\l\u])//([\l\u]) находит "...какое-то выражение//тра-ля-ля-ля...", а выражение "...какое-то выражение.//тра-ля-ля-ля..." - уже не видит
Как мне указать здесь точку?
 
Ответ: GREP в InDesign. Что и как

[\l\u][[:punct:]]?
 
Ответ: GREP в InDesign. Что и как

Если вам нужна именно точка, пишите "\.".
Если напишете только ".", то это означает "любой символ".
 
Ответ: GREP в InDesign. Что и как

Спасибо, поставил вот так: ([\\l\\u])(\.)?//([\\l\\u]) changeTo: "$1$2~s// $3"
хотя и "([\\l\\u])([[:punct:]]?)//([\\l\\u])" работает
А еще.
Как римские цифры обозначать?
 
Ответ: GREP в InDesign. Что и как

[I|V|X|M]
 
Ответ: GREP в InDesign. Что и как

NNN5 сказал(а):
Если вам нужна именно точка, пишите "\.".
Если напишете только ".", то это означает "любой символ".

Спасибо Любимцев, NNN5
Попытался по аналогии построить конструкцию для замены 123-124, 125 - 126, 127- 128, 129 -130 -
([\d])?([-])?(\d) - не работает. Укажите где ошибка.
Я здесь недавно, пока еще не могу логику понять
 
Ответ: GREP в InDesign. Что и как

Все, сделал. Вопрос снят.
 
Ответ: GREP в InDesign. Что и как

Как в запросу GREP сделать whole word?
Спасибо
 
Ответ: GREP в InDesign. Что и как

Используйте в начале искомого выражения \< (начало слова), потом само слово, потом \> (конец слова).
 
Статус
Закрыто для дальнейших ответов.