GREP最后{4}个字尾字母

时间:2014-10-16 23:47:53

标签: regex adobe-indesign grep-indesign

在InDesign中,我希望[\l]{4}(?=\s)能找到最后四个字母,但GREP不起作用。我想把它作为后缀放在页眉的标题中。用\b$做魔法,没有任何效果。并且http://regex101.com/r/uQ7xR3/1在InDesign中不起作用,因为它具有php风格。

因为有几个附加条件。如果第5个字母是h,那么我们应该取每个单词的5个最后一个字母而不是4个字母。但我们不会将任何内容分隔为\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

更新。让我添加更多限制。不只是" h",但如果有这些组合kh|gh|ch|jh|ṭh|ḍh|th|dh|ph|bh,则不要只采用最后4个,而是最后5个字母。与ai | au相同 - 它们不应该分开。

一般情况: 1)从vṛddhāpacāyitva开始itva。 两个排除: 2)从nakhālikhāli而不是hāli,因为kh被视为梵文脚本中的单个字母。与kh|gh|ch|jh|ṭh|ḍh|th|dh|ph|bh完全相同。 从mirikharikha而不是ikha,因为kh被视为梵文脚本中的单个字母。与kh|gh|ch|jh|ṭh|ḍh|th|dh|ph|bh完全相同。 3)从mahahrauḍhrauḍ而不是rauḍ,因为au被视为梵文脚本中的单个字母,所以ai | au就像一个字母。 从ekaikaivataivat而不是ivat,因为ai被视为梵文脚本中的单个字母,所以ai | au就像一个字母。

2 个答案:

答案 0 :(得分:1)

小心说明"它不起作用"及其背后的推理。您的初始GREP [\l]{4}(?=\s) 在InDesign中工作(尽管[..]是多余的。)

类似地,链接的\w\w\w\w$也有效,它与" php flavor"无关。仅突出显示最后一次出现的原因是因为(1)$仅链接到故事结束,并添加m多行标志使其适用于各个行,(2)使用m只会突出显示第一个实例(默认值),并且您需要g来获取所有实例,但最重要的是,(3)\w在一般GREP解析器中可能不是支持Unicode,在这种情况下,您可以看到它不是因为\w没有选择。另一方面,InDesign的GREP 支持Unicode。

以下表达式适用于您提供的具体示例;另一个"单个字母"可以以类似的方式添加组合。

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

当应用于您的示例单词时:

grep with complications

答案 1 :(得分:0)

也许试试:

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

有关您的其他资格,您可以尝试:

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

同样,和以前一样,您需要将字母的posix类替换为InDesign中等效的任何标记