Перейти к содержимому


GREP в помощь


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 22

#1 Евгений Карев aka jvk

Евгений Карев aka jvk

    ветеран

  • good designer
  • PipPipPipPip
  • 968 сообщений

Отправлено 14 Сентябрь 2008 - 09:59

Предлагаю в этой теме выкладывать нужные на ваш взгляд  GREP Query.
Начну первый, присоединяйтесь.

Поиск интернет-адресов

Find what: (?i)(http|ftp|www)(\S+)(\.[A-z]{2,4})
Change to: $0
Change format: Basic Character Formats >> No Break

Поиск e-mail

Find what: [\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[A-z]{2,7}
Change to: $0
Change format: Basic Character Formats >> No Break

Удаление пустых параграфов  

Find what: ^~b+
Change to: (ничего)
Лучше день потерять, потом за пять минут долететь...
Изображение
Вёрстка фриланс. Потфолио | Резюме

#2 Евгений Карев aka jvk

Евгений Карев aka jvk

    ветеран

  • good designer
  • PipPipPipPip
  • 968 сообщений

Отправлено 17 Сентябрь 2008 - 08:47

10 m2 >> 10 m2

Find what:
(?<=м|m)\d(?=\>)
Change to: $0
Change format: Basic Character Formats >> Position >> Superscript
Лучше день потерять, потом за пять минут долететь...
Изображение
Вёрстка фриланс. Потфолио | Резюме

#3 Semen

Semen

    Новичок

  • пользователь
  • Pip
  • 8 сообщений

Отправлено 28 Ноябрь 2008 - 10:08

Просмотр сообщенияjvk (14.9.2008, 12:59) писал:

Предлагаю в этой теме выкладывать нужные на ваш взгляд  GREP Query.
Начну первый, присоединяйтесь.

А ты не мог бы рассказать что такое GREP?

#4 Евгений Карев aka jvk

Евгений Карев aka jvk

    ветеран

  • good designer
  • PipPipPipPip
  • 968 сообщений

Отправлено 01 Декабрь 2008 - 09:18

Просмотр сообщенияSemen (28.11.2008, 13:08) писал:

А ты не мог бы рассказать что такое GREP?

Цитата

с помощью GREP можно составлять выражения для поиска/замены алфавитно-цифровых последовательностей и шаблонов в больших документах или во множестве открытых документов.
подробности тут
Лучше день потерять, потом за пять минут долететь...
Изображение
Вёрстка фриланс. Потфолио | Резюме

#5 ideli

ideli

    Новичок

  • пользователь
  • Pip
  • 6 сообщений

Отправлено 26 Январь 2009 - 13:01

Мне очень часто нужно (в основном в книгах) сделать неразрывные пробелы между инициалами и фамилией, чтобы инициалы не оставались на отдельной строке, делаю это так:
если И.И.Иванов
Find what: (\u\.)(\u\.)(\u[\l\u])
Change to: $1~<$2~S$3
если И.И. Иванов, т.е. между инициалами и фамилией есть пробел
Find what: (\u\.)(\u\.) (\u[\l\u])
Change to: $1~<$2~S$3
если просто имя и фамилия И.Иванов
Find what: (\u\.)(\u[\l\u])
Change to: $1~S$2
соответственно, если есть пробел
Find what: (\u\.) (\u[\l\u])
Change to: $1~S$2

#6 Анжелика

Анжелика

    Новичок

  • пользователь
  • Pip
  • 7 сообщений

Отправлено 27 Август 2010 - 19:41

Задача: не оставлять в конце строки предлоги типа:
к, в, о, с, и, у, на, за, по, до, за, из, от...

Таким же макаром, как описывает  "ideli",  наверное, можно вставить неразрывные пробелы между предлогами и следующим словом?
Во вкладке Текст это понятно как сделать, но только на определённый предлог.
Хотелось бы на все сразу...

Как задать на группу предлогов неразрывные пробелы со следующим словом?

#7 Евгений Карев aka jvk

Евгений Карев aka jvk

    ветеран

  • good designer
  • PipPipPipPip
  • 968 сообщений

Отправлено 28 Август 2010 - 11:52

Просмотр сообщенияАнжелика (27 Август 2010 - 19:41) писал:

Задача: не оставлять в конце строки предлоги типа:
к, в, о, с, и, у, на, за, по, до, за, из, от...

Таким же макаром, как описывает  "ideli",  наверное, можно вставить неразрывные пробелы между предлогами и следующим словом?
Во вкладке Текст это понятно как сделать, но только на определённый предлог.
Хотелось бы на все сразу...

Как задать на группу предлогов неразрывные пробелы со следующим словом?
Под рукой нет индиза проверить, но по памяти как то так:

FW:(\s)(к|в|о|с|и|у|на|за|по|до|за|из|от)(\s)
CT:$1$2~S

Поясняю:
\s – пробел
| – знак "или"

$1 – меняем то что нашли по запросу в первых скобках на то же самое что и нашли
$2 – меняем то что нашли по запросу во втроых скобках на то же самое что и нашли
~S – неразрывный пробел не фиксированной ширины, меняем на него что нашли по запросу в третьих скобках

В настройках поиска ставим ignore case (или что-то типа того).

Пробуйте.

PS: Есть готовый скрипт Text Clean Up. Он приводит в порядок не только пробелы, посмотрите попробуйте его.
В Text Clean Up прибиваются следующие пробелы: в, к, с, а, о, у, и, я, по, под, над, на, из, для, об, от, до, the, in, on, it, is, at. Список можно менять в файле TextCleanUp.ini
Лучше день потерять, потом за пять минут долететь...
Изображение
Вёрстка фриланс. Потфолио | Резюме

#8 Анжелика

Анжелика

    Новичок

  • пользователь
  • Pip
  • 7 сообщений

Отправлено 07 Сентябрь 2010 - 02:39

Для тех, кто как и я, только начинает изучать метасимволы.
Совместила описание  GREP рус. и инглиш., кое что добавила.
Надеюсь найдутся те, кто доведёт таблицу до ума, да и ошибки наверное есть.
Делала для себя, чтобы удобно было пользоваться.

Прикрепленные файлы



#9 Евгений Карев aka jvk

Евгений Карев aka jvk

    ветеран

  • good designer
  • PipPipPipPip
  • 968 сообщений

Отправлено 07 Сентябрь 2010 - 07:33

Просмотр сообщенияАнжелика (07 Сентябрь 2010 - 02:39) писал:

…вот бы кто перевёл!
Думаю многим бы пригодилось.
Что переводить? Здесь посмотрите пост #3. Там все переведено. И что такое GREP, и таблица символов есть.
Лучше день потерять, потом за пять минут долететь...
Изображение
Вёрстка фриланс. Потфолио | Резюме

#10 Анжелика

Анжелика

    Новичок

  • пользователь
  • Pip
  • 7 сообщений

Отправлено 07 Сентябрь 2010 - 12:19

Просмотр сообщенияjvk (28 Август 2010 - 11:52) писал:

Просмотр сообщенияАнжелика (27 Август 2010 - 19:41) писал:

Задача: не оставлять в конце строки предлоги типа:
к, в, о, с, и, у, на, за, по, до, за, из, от...

Таким же макаром, как описывает  "ideli",  наверное, можно вставить неразрывные пробелы между предлогами и следующим словом?
Во вкладке Текст это понятно как сделать, но только на определённый предлог.
Хотелось бы на все сразу...

Как задать на группу предлогов неразрывные пробелы со следующим словом?
Под рукой нет индиза проверить, но по памяти как то так:

FW:(\s)(к|в|о|с|и|у|на|за|по|до|за|из|от)(\s)
CT:$1$2~S

Поясняю:
\s – пробел
| – знак "или"

$1 – меняем то что нашли по запросу в первых скобках на то же самое что и нашли
$2 – меняем то что нашли по запросу во втроых скобках на то же самое что и нашли
~S – неразрывный пробел не фиксированной ширины, меняем на него что нашли по запросу в третьих скобках

В настройках поиска ставим ignore case (или что-то типа того).

Пробуйте.

PS: Есть готовый скрипт Text Clean Up. Он приводит в порядок не только пробелы, посмотрите попробуйте его.
В Text Clean Up прибиваются следующие пробелы: в, к, с, а, о, у, и, я, по, под, над, на, из, для, об, от, до, the, in, on, it, is, at. Список можно менять в файле TextCleanUp.ini

Работает!
Но если идут подряд два предлога, например (и по; но за; а в) то пробел применяется только к первому предлогу...

И ещё, если у слова стоял символ индекса, то после замены он пропадает.
Символ индекса назначаю в Word_е, так как там удобнее - можно сослаться на целый список в отдельном файле, а не так как в InDesign, вносить по одному слову. Или я чего не знаю?

Вопрос. Как перенести символ индекса в конец слова?

Прикрепленные изображения

  • Знак индекса.jpg


#11 Евгений Карев aka jvk

Евгений Карев aka jvk

    ветеран

  • good designer
  • PipPipPipPip
  • 968 сообщений

Отправлено 27 Январь 2011 - 10:12

Меня часто спрашивают как в GREP найти все что в кавычках, скобках и т.д.
Вот:
кавычки: (")(.+?)(")
скобки: (\()(.+?)(\))
квадратные скобки: (\[)(.+?)(\])
Ну и так далее…
Лучше день потерять, потом за пять минут долететь...
Изображение
Вёрстка фриланс. Потфолио | Резюме

#12 Е. Мерзляков

Е. Мерзляков

    ветеран

  • гл.адм.
  • PipPipPipPip
  • 10 748 сообщений

Отправлено 28 Январь 2011 - 06:32

многие товарищи с бухгалтерским уклоном любят писать даты в таком виде: 05 февраля. Следующий GREP меняет на 5 февраля
Find what: 0(\d)
Change to: $1

#13 Евгений Карев aka jvk

Евгений Карев aka jvk

    ветеран

  • good designer
  • PipPipPipPip
  • 968 сообщений

Отправлено 28 Январь 2011 - 07:29

Просмотр сообщенияЕ. Мерзляков (28 Январь 2011 - 06:32) писал:

многие товарищи с бухгалтерским уклоном любят писать даты в таком виде: 05 февраля. Следующий GREP меняет на 5 февраля
Find what: 0(\d)
Change to: $1

Ога, а за одно "505 штук", "108 номер" и т.п. вышепреведенный GREP так же, не напрягаясь, меняет на "55 штук", "18 номер". Ибо ему не показали где искать 0.

Вот кагбэ более правельное выражение:
Find what: \<(0)(\d)
Change to: $2

\< — начало слова
Лучше день потерять, потом за пять минут долететь...
Изображение
Вёрстка фриланс. Потфолио | Резюме

#14 Е. Мерзляков

Е. Мерзляков

    ветеран

  • гл.адм.
  • PipPipPipPip
  • 10 748 сообщений

Отправлено 28 Январь 2011 - 07:31

спасибо, действительно этот вариант более универсальный

#15 Евгений Карев aka jvk

Евгений Карев aka jvk

    ветеран

  • good designer
  • PipPipPipPip
  • 968 сообщений

Отправлено 31 Январь 2011 - 15:06

На сайте adobeindesign.ru нашел интересный GREP, при помощи которого проставляются буквы алфавита как заголовки у созданого индексного указателя.
До:
Скрытый текст

После:
Скрытый текст

GREP:
Find:(?<=^(\u))(.+\r)(?!^\1)(\u)
Change:$2\r$3\r\r$3

На форуме RUDTP пользователь andrejK, расшифровал это:

Цитата

ищем
любой набор, оканчивающийся переводом строки [(.+\r)]
перед которым должна быть прописная с начала строки [(?<=^(\u))]
после которого не должно [?!] следовать с новой строки ТО ЧТО МЫ НАШЛИ выше в позитиве [^\1]
но должно быть прописной буквой (\u)

Лучше день потерять, потом за пять минут долететь...
Изображение
Вёрстка фриланс. Потфолио | Резюме

#16 Е. Мерзляков

Е. Мерзляков

    ветеран

  • гл.адм.
  • PipPipPipPip
  • 10 748 сообщений

Отправлено 31 Январь 2011 - 16:18

А ведь еще и стиль эта штука может прицеплять? Тогда ваще круть

#17 Евгений Карев aka jvk

Евгений Карев aka jvk

    ветеран

  • good designer
  • PipPipPipPip
  • 968 сообщений

Отправлено 31 Январь 2011 - 16:43

Просмотр сообщенияЕ. Мерзляков (31 Январь 2011 - 16:18) писал:

А ведь еще и стиль эта штука может прицеплять? Тогда ваще круть

Стиль зацепится к самой букве и к параграфу (не пустому) до нее и после нее.
Можно вторым грепом пройтись с применением стиля, что типа такого:
F: ^(\u\r)
C:$0
Лучше день потерять, потом за пять минут долететь...
Изображение
Вёрстка фриланс. Потфолио | Резюме

#18 Е. Мерзляков

Е. Мерзляков

    ветеран

  • гл.адм.
  • PipPipPipPip
  • 10 748 сообщений

Отправлено 08 Февраль 2011 - 07:12

Женя, напиши GREP который убивает Ваш, Ваши, Вашему, Вас, Вам и т.п. Но нельзя убивать их перед точками и в начале строки
1. Вам... - правильно
Вам...   - правильно
Хочу Вас... - неправильно


#19 Евгений Карев aka jvk

Евгений Карев aka jvk

    ветеран

  • good designer
  • PipPipPipPip
  • 968 сообщений

Отправлено 08 Февраль 2011 - 13:32

Просмотр сообщенияЕ. Мерзляков (08 Февраль 2011 - 07:12) писал:

Женя, напиши GREP который убивает Ваш, Ваши, Вашему, Вас, Вам и т.п. Но нельзя убивать их перед точками и в начале строки
1. Вам... - правильно
Вам...   - правильно
Хочу Вас... - неправильно


Вместе с SSmario сочинили такое выражение:

FW:(?<!\.|!|\?)(\s)(В)(ы|ас|аш|аши|ашему|ас|ам)\>
CT:$1в$3

В конструкцию (ас|аш|аши|ашему|ас|ам) дописывай еще возможные варианты.
Если надо дам расшифровку. Пробуй.
Лучше день потерять, потом за пять минут долететь...
Изображение
Вёрстка фриланс. Потфолио | Резюме

#20 Е. Мерзляков

Е. Мерзляков

    ветеран

  • гл.адм.
  • PipPipPipPip
  • 10 748 сообщений

Отправлено 13 Февраль 2011 - 19:54

Спасибо, работает!





Поиск работы в Казахстане