Naar tekenreeksen zoeken

Veel zoektermen krijgen een tekenreeks mee als parameter en vergelijken die met een of meer pakketvelden. Tekenreeksen kunnen zowel met als zonder aanhalingstekens (") opgegeven worden, zodat?name(scorch) en ?name("scorch") eenzelfde zoekbewerking zullen uitvoeren. Indien u een zoekterm opgeeft met dubbele aanhalingstekens, kunt u in de zoekterm zelf een dubbel aanhalingsteken opnemen door vlak ervoor een backslash (\) te plaatsen: bijvoorbeeld, het resultaat van ?description("\"easy\"") zal zijn: alle pakketten waarvan de beschrijving de tekenreeks "easy" bevat.

Indien u een kale tekenreeks opgeeft, een waarrond geen dubbele aanhalingstekens staan, dan zal aptitude de tekenreeks als beëindigd beschouwen als het bij het afsluitende haakje aankomt of aan de komma die voorafgaat aan het tweede argument bij de zoekterm. [14] Om de bijzondere betekenis van die tekens te neutraliseren, moet u vlak ervoor een tilde (~) plaatsen. Bijvoorbeeld, ?description(etc)) is een fout tegen de syntaxis, omdat het eerste ) de term van het type ?description afsluit en het tweede ) geen enkel corresponderend ( heeft. Daarentegen levert ?description(etc~)) een overeenkomst op met elk pakket waarvan de beschrijving de tekst etc) bevat. U moet extra zorgvuldig zijn als u de verkorte notatie voor een term gebruikt. Zie de paragraaf met de naam “Verkorte notatie voor zoektermen” voor details.

De meeste tekstuele zoekopdrachten (naar pakketnamen, beschrijvingen enz.) gebeuren aan de hand van hoofdletterongevoelige reguliere expressies. Er is een overeenkomst tussen de reguliere expressie en een veld als een gedeelte van dat veld beantwoordt aan de reguliere expressie. Bijvoorbeeld, ogg[0-9] komt overeen met libogg5, ogg123 en theogg4u. Sommige lettertekens hebben binnen een reguliere expressie een speciale betekenis [15]. Dus, indien u ze wilt gebruiken in zoekopdrachten moet u een backslash als stuurcode (escape) gebruiken. Bijvoorbeeld, om te zoeken naar g++, moet u het patroon g\+\+ gebruiken.

De tekens ! en | hebben in zoekpatronen een speciale betekenis. Om deze tekens te gebruiken in een tekenreeks die niet door aanhalingstekens begrensd wordt, kunt u vlak ervoor een tilde (~) plaatsen. Bijvoorbeeld, om pakketten te vinden waarvan de beschrijving ofwel groot of schuin bevat, moet u het patroon ?description(groot~|schuin) gebruiken. Maar wellicht zult u het comfortabeler vinden om in dergelijke gevallen gewoon een tekenreeks tussen aanhalingstekens te gebruiken: ?description("groot|schuin").



[14] aptitude zal een komma enkel als een speciaal teken interpreteren als er een tweede argument opgegeven is, zodat (bijvoorbeeld) ?name(apt,itude) zal zoeken naar de tekenreeks apt,itude in het veld Naam van de pakketten.

Hoewel dit gedrag duidelijk omschreven is, kan het toch tot verrassingen leiden. Ik beveel aan om tekenreeksen tussen aanhalingstekens te gebruiken voor elk patroon dat lettertekens bevat die een speciale betekenis kunnen hebben.

[15] De lettertekens met een bijzondere betekenis zijn: +, -, ., (, ), |, [, ], ^, $, en ?. Merk op dat sommige daarvan ook metatekens voor aptitude zijn. Indien u dus (bijvoorbeeld) een letterlijke | wenst te typen, moet u een dubbele stuurcode (escape) gebruiken: ?description(\~|) zal een overeenkomst opleveren met pakketten waarvan de beschrijving het letterteken verticaal streepje (|) bevat.