Многие поисковые термины принимают в качестве параметра строку и сравнивают
её с одним или несколькими полями пакета. Строки могут вводится с двойными
кавычками или без них («"»), поэтому
«» и
«?name(scorch)» будут выполнять один и
тот же поиск. Если вы ввели поисковую строку, используя двойные кавычки, вы
можете добавить в неё символ двойных кавычек, помещая непосредственно перед
ним две обратных косых черты («?name("scorch")\») :
например, «» будет
соответствовать пакету, чьё описание содержит строку
«?description("\"easy\"")"easy"».
Если вы введёте «голую» строку, т. е. строку, не заключённую в
двойные кавычки, aptitude будет считать, что эта строка
«заканчивается», когда будет обнаружена закрывающая скобка или
запятая перед вторым аргументом поискового термина [14]. Для того, чтобы отменить специальное значение этих
символов, поместите тильду («~»)
непосредственно перед ними. Например,
«» является
синтаксической ошибкой, так как первый символ
«?description(etc)))» заканчивает ?description термин, а
второй символ «)» не соответствует
какому-либо символу «(». С другой стороны,
«» соответствует
пакету, чьё описание содержит текст
«?description(etc~))etc)». Для использования сокращённой
нотации терминов есть и другие причины; более подробную информацию см. в
разделе «Сокращения для поисковых терминов».
Большинство текстовых поисков (имен пакетов, описаний и т. д.) выполняются
с использованием нечувствительных к регистру регулярных
выражений. Регулярное выражение соответствует полю, если любая часть
поля соответствует этому выражению; например,
«ogg[0-9]» будет соответствовать
«libogg5»,
«ogg123» и
«theogg4u». Некоторые символы имеют
специальное значение внутри регулярных выражений [15] , поэтому если вы хотите, чтобы они использовались
в поиске, вам необходимо экранировать их обратной косой чертой: например,
чтобы найти «g++», вам следует использовать
шаблон «g\+\+».
Символы «!» и
«|» имеют специальные значения внутри
поисковых шаблонов. Чтобы включить эти символы в строку, не заключенную в
кавычки, вам необходимо поместить тильду
(«~») непосредственно перед ними. Например,
чтобы выбрать пакеты, чье описание содержит либо «grand», либо
«oblique», используйте шаблон
«». Тем не
менее, в указанных случаях вам, вероятно, покажется более удобным
использовать закавыченную строку:
«?description(grand~|oblique)».
?description("grand|oblique")
[14]
aptitude расценивает запятую как специальный символ только в том случае,
если имеется второй аргумент, так (например)
«» осуществляет поиск
строки «?name(apt,itude)apt,itude» в полях
Имя пакетов.
Несмотря на то, что это поведение строго определено, оно может удивлять; я рекомендую использовать закавыченные строки для любого шаблона, содержащего символы, которые могут иметь специальное значение.
[15]
Символы со специальным значением: «+»,
«-», «.»,
«(», «)»,
«|», «[»,
«]», «^»,
«$» и
«?». Заметьте, что некоторые из них также
являются метасимволами aptitude, поэтому если вы хотите ввести (например)
символ «|», он должен быть экранирован:
«», этот запрос будет
соответствовать тем пакетам, чье описание содержит символ вертикальной черты
(«?description(\~|)|»).