2014-10-16 3 views
0

In InDesign Я надеялся, что [\l]{4}(?=\s) найдет последние четыре буквы слов, но GREP не работает. Я хотел поместить его в заголовок страницы в качестве суффикса. Делал магию с \b и $, ничего не работало. И http://regex101.com/r/uQ7xR3/1 не работает в InDesign, потому что это php-вкус.GREP last {4} слова концевые буквы

Потому что есть несколько дополнительных условий. Если пятая буква - h, то вместо 4 мы должны взять 5 последних букв каждого слова. Но мы не берем ничего, разделенное \s, и не принимаем ... или что-либо внутри | (например, | ā |).

virūpacakṣus dharmacakṣus nayacakṣus sūryacakṣus divyacakṣus saṃgrah āsaṃgrah upasaṃgrah pratisaṃgrah abhisaṃgrah anusaṃgrah

Update. Позвольте мне добавить дополнительные ограничения. Не только «h», но если есть эти комбинации kh|gh|ch|jh|ṭh|ḍh|th|dh|ph|bh, не принимайте только последние 4, но последние 5 букв. То же самое с ai | au - они не должны быть разделены.

Общий корпус: 1) От vṛddhāpacāyitva принять itva. Два исключения: 2) От nakhāli возьмите khāli вместо hāli, потому что kh рассматривается как одна буква в сценарии деванагари. Точно так же с kh|gh|ch|jh|ṭh|ḍh|th|dh|ph|bh. От mirikha принять rikha вместо ikha, потому что kh рассматривается как одна буква в сценарии деванагари. Точно так же с kh|gh|ch|jh|ṭh|ḍh|th|dh|ph|bh. 3) От mahahrauḍ возьмите hrauḍ вместо rauḍ, потому что au рассматривается как одна буква в сценарии devanagari, поэтому ai | au - как одна буква. От ekaikaivat возьмите aivat вместо ivat, потому что ai рассматривается как одна буква в сценарии деванагари, поэтому ai | au похожа на одну букву.

+1

Вы можете показать на примерах, что вы пытаетесь соответствовать/захвата? – Bohemian

+0

Обновлены, перефразированы условия и добавлены образцы. – gasyoun

ответ

0

Возможно попробовать:

[[:alpha:]]{4}h?\b 

Для вашей дополнительной квалификации, вы можете попробовать:

(?:ai|au|kh|gh|ch|jh|ṭh|ḍh|th|dh|ph|bh|[[:alpha:]]){4}h?\b 

Опять же, как и раньше, вам нужно будет заменить класс Posix для писем с тем, что маркер является эквивалент в InDesign

+0

Спасибо, он работает в http://rubular.com/r/IL3hvsdDzf, но не работает в InDesign, должны быть разные GREP. Не работает также на http://regexpal.com/ и http://www.online-utility.org/text/grep.jsp и http://www.regexr.com/39ogg – gasyoun

+1

Я не знаю онлайн-тестера для InDesign. Насколько вы упомянули онлайн-тестеры, поскольку они предназначены для разных вкусов, почему вы ожидаете, что регулярное выражение будет работать без соответствующего перевода? Regexpal для javascript; Я не уверен в последней ссылке, но вы можете легко заставить ее работать, сделав соответствующий перевод для токена [[: alpha:]] и привязки. Сделайте тот же перевод для своего вкуса InDesign, и он должен работать. Сначала попробуйте/S вместо [[: alpha:]]. Если это не сработает, у вас есть что-то еще не так с вашим процессом. –

1

Будьте осторожны, заявляя, что «это не работает», и рассуждения позади него. Ваш начальный GREP [\l]{4}(?=\s)делает работы в InDesign (хотя [..] являются излишними).

Аналогично, связанный \w\w\w\w$ также работает, и он не имеет ничего общего с «php flavor». Причина, по которой подсвечивается только последнее событие, заключается в том, что (1) ссылки $ только на конец истории, и добавление многострочного флага m заставляет его работать для отдельных строк, (2) с m только первый экземпляр будет (по умолчанию), и вам нужно g, чтобы получить их все, но самое главное, (3) \w в общем синтаксическом анализаторе GREP может не отображаться в Unicode, и в этом случае вы можете видеть, что это не потому, что \w не выбирает вверх и .GREP InDesign, с другой стороны, - Unicode-aware.

Следующее выражение будет работать над конкретными примерами, которые вы предоставили; другие «однобуквенные» комбинации могут быть добавлены аналогичным образом.

(au|ai|kh|\l){4}h?\b 

Применительно к вашему образцу слов:

grep with complications

Смежные вопросы