AMIGA # 1
С помощью пары круглых скобок () вы может сгруппировать любое число символов в группу, которая будет считаться элементом поиска. Если теперь после решётки будет следовать группа символов, заключённая в круглые скобки, то ей может соответствовать любое число повторений этой группы в искомой строке (включая ни одного повторения). Например, шаблон #(по)лзти даст совпадения для: поползти, ползти и лзти. Вертикальная черта \"|\" может трактоваться как слово \"или\", т.е. совпадение возможно либо с символом (группой символов) слева от черты, либо с символом (группой символов) справа от черты. Например, шаблон п(а|о)года даст совпадения для: погода и пагода. Шаблон же (ДА|НЕТ) даст совпадения для: ДА и НЕТ. Знак % обозначает пустую строку (отсутствие символов). Его удобно применять в тех случаях, когда # не обеспечивает должной гибкости поиска, поскольку иногда может потребоваться найти либо единственное вхождение требуемого символа в строке, либо его отсутствие. Пример: шаблон в(о|%) поле даст совпадения со строками: в поле и во поле. Совпадения же со строкой \"воо поле\", которое произошло бы в случае использования шаблона в#о поле, уже не произойдет. Комбинация (?|%) сработает как на любой символ, так и на его отсутствие. Пример: (?|%)е?а даст совпадение на: беда и еда, но не даст на: \"победа\". Вы можете спросить, а что делать, если искомая строка сама по себе включает какие-либо из символов описания шаблонов? Для этого используется знак апострофа \" \' \" — если после него поставить такой символ, то он будет трактоваться как обычный. Например, шаблон ч?о\'? даст совпадение со словом что?. Если же необходимо, чтобы поиск сработал на строке, содержащей символ апострофа, то в шаблоне необходимо поставить два апострофа подряд. Например, чтобы найти слово don\'t, шаблон должен быть: don\"t. Начиная с версии 2 в ОС Амиги введены еще два символа, управляющих поиском по шаблону. Первый из них - тильда \"~\", обозначающий отрицание. Если мы, например, хотим работать со всеми файлами, за исключением иконок (файлов с расширением \".info\"), то выбрать их можно с помощью шаблона ~(#?.info).
|