Overeenkomsten, jokertekens en bereiken
In een lijst-look-up wordt getest of er records in de lijst zijn waarvan de Key (bijv. het telefoonnummer van de beller, ingevoerde DTMF of Onderwerp in een e-mail) overeenkomt met de Key in een rij in de lijst. Als een overeenkomst wordt gevonden, wordt de waarde van het (eerste) overeenkomstige record teruggegeven.
De inkomende key kan slechts een enkel (constant) element zijn. Wildcards of reeksen zijn hier niet toegestaan.
Het key-veld van een record in een lijst kan één enkel element (constante) zijn, een bereik, of één enkel element dat één of meer jokertekens Combinaties van bereik en jokerteken(s) binnen de key van een rij van een lijst is niet toegestaan.
Bereiken in het sleutelveld van de lijst
- De vanaf-waarde en de tot-waarde worden gescheiden door : (dubbele punt)
- De tot-waarde wordt opgenomen in het bereik. Voorbeeld Key-bereik: 21000000 : 21999999
Jokertekens in het veld Sleutel
De jokertekens, evenals de substitutie (volgend hoofdstuk), zijn gebaseerd op de syntaxis die bekend is van reguliere expressies gebaseerd op Perl. Er zijn echter een aantal beperkingen ten opzichte van de volledige Perl syntaxis. Dit is wat ondersteund wordt als onderdeel van een key:
- Vertegenwoordigt een willekeurig aantal tekens: .* (d.w.z. een enkele punt gevolgd door een sterretje)
- Representeert een enkel karakter: . (d.w.z. een enkel punt)
Voorbeelden:
Beschrijving | Sleutel |
---|---|
Overeenstemming voor elk nummer beginnend met 47 | 47.* |
Overeenstemming voor getallen die beginnen met 47 en die in totaal 10 cijfers lang zijn (d.w.z. acht cijfers na 47) | 47........ |
Kies een getal dat begint met 47 en eindigt met 99. Tussen het begin 47 en het einde 99 moeten minstens twee tekens staan. | 47...*99 |
Overeenstemming voor tekst eindigend op abc | .*abc |
Zoek naar tekst die begint met abc | abc.* |
Overeenstemming voor tekst die abc bevat | .*abc.* |
Geavanceerd:
Citeren nodig voor de wildcard tekens
Als een enkele punt deel gaat uitmaken van de key en niet behandeld wordt als een wildcard, moet u de punt vooraf laten gaan (escapen) door een backslash. Hetzelfde geldt voor een asterisk als de asterisk volgt op een enkele punt. Hoewel, een sterretje alleen (dus niet direct na een punt) wordt gezien als onderdeel van de key zonder de backslash. Voorbeelden, citeren:
Beschrijving | Sleutel |
---|---|
Maak een key die moet overeenkomen met een binnenkomende key met de vaste waarde 47*1 | 47*1 |
Maak een key die moet overeenkomen met een inkomende key die begint met 47, dan moet het één karakter van welke aard dan ook hebben, onmiddellijk gevolgd door *9 (voorbeeld van zo'n inkomende key is 473*9) | 47.\*9 |
Maak een key die moet overeenkomen met een binnenkomende key met de vaste waarde 47.1. | 47\.1 |
Wissel:
Een terugkerend waarde (van de match in de look-up) kan gemanipuleerd worden zodat het delen van (of de hele) inkomende Key bevat. Dit is hoe:
- Een jokertekenuitdrukking kan worden omgeven door haakjes, waardoor een jokergroep wordt
- Er kan meer dan één jokertekengroep binnen dezelfde key zijn. De tekens in een inkomende key die met een bepaalde jokertekengroep overeenkomt, kunnen deel uitmaken van de geretourneerde waarde.
- Plaatshouders (in de opgegeven terugkeerwaarde) voor deze jokertekengroepen zijn $1 voor de eerste groep, $2 voor de tweede, $3 voor de derde, enzovoort.
Voorbeelden:
Beschrijving | Zet de key op | Stel Waarde in op |
---|---|---|
Alle inkomende toetsen die met 22 beginnen en uit precies 8 cijfers bestaan, moeten voorafgegaan worden door de waarde 0047 | 22(......) | 004722$1 |
Inkomende Key die begint met 0047 en daarna een onbekend aantal tekens bevat, moet 0047 gestript hebben. | 0047(.*) | $1 |