Matchning, jokertecken och intervall
I en listsökning kommer vi att testa om det finns några poster i listan där inkommande nyckel (exempelvis en uppringares telefonnummer, angivet DTMF eller ämne i ett e-postmeddelande) matchar en nyckel på en rad i listan. Om en matchning hittas, returneras värdet för den (första) matchande posten.
Inkommande nyckel kan endast vara ett enda (konstant) element. Jokertecken eller intervall är inte tillåtna här.
Nyckelfältet för en post i en lista kan vara ett enda element (konstant), ett intervall, eller ett enda element som innehåller ett eller flera jokertecken. Kombinationer av intervall och jokertecken i en listrads nyckel är inte tillåtet.
Intervall i listans nyckelfält
- Från-värdet och till-värdet skiljs åt av : (kolon)
- Till-värdet ingår i intervallet. Exempel på nyckelintervall: 21000000 : 21999999
Jokertecken i nyckelfältet
Matchningen av jokertecken liksom ersättningen (nästa kapitel) är baserad på syntax känd från Perl-baserade reguljära uttryck. Det finns dock ett antal begränsningar jämfört med den fullständiga Perl-syntaxen. Detta är vad som stöds som en del av en nyckel:
- Representerar valfritt antal tecken: .* (dvs. en enda punkt följt av en asterisk)
- Representerar valfritt tecken: .* (dvs. en enda punkt)
Exempel:
Beskrivning | Nyckel |
---|---|
Matcha mot alla nummer som börjar med 47. | 47. * |
Matcha nummer som börjar med 47 och som innehåller totalt 10 siffror (åtta siffror efter 47) | 47 ........ |
Matcha valfritt nummer som börjar med 47 och slutar med 99. Mellan det inledande 47 och det avslutande 99 ska det finnas minst två tecken. | 47 ... * 99 |
Matcha mot text som slutar med abc | . * abc |
Matcha mot text som börjar med abc | abc. * |
Matcha mot text som innehåller abc | . * abc. * |
Avancerat:
Citat behövs för jokertecknen
Om en enkelpunkt ska vara en del av nyckeln och inte behandlas som ett jokertecken, måste du sätta ett omvänt snedstreck framför punkten. Detsamma gäller för asterisker om asterisken följer efter en enkelpunkt. En fristående asterisk (dvs. som inte är placerad precis efter punkten) förstås som en del av nyckeln utan omvänt snedstreck. Exempel på användning av citattecken:
Beskrivning | Nyckel |
---|---|
Skapa en nyckel som ska matcha en inkommande nyckel med det fasta värdet 47*1 | 47 * 1 |
Skapa en nyckel som ska matcha en inkommande nyckel som börjar med 47. Den ska ha ett tecken av varje typ, omedelbart följt av *9 (urval från en sådan inkommande nyckel är 473*9) | 47. \ * 9 |
Skapa en nyckel som matchar en inkommande nyckel med det fasta värdet 47.1. | 47 \ .1 |
Ersättning:
Ett returvärde (från matchning i sökningen) kan manipuleras så att den innehåller delar av (eller hela) den inkommande nyckeln. Så här gör du:
.Ett uttryck med jokertecken kan omges av parenteser och utgör därmed en jokertecken-grupp
.Det kan finnas mer än en jokertecken-grupp inom samma nyckel. Tecknen i en inkommande nyckel som matchar en viss jokertecken-grupp kan vara en del av det returnerade värdet.
.Platshållare (i det angivna returvärdet) för dessa jokertecken-grupper är $1 för den första gruppen, $2 för den andra, $3 för den tredje osv.
Exempel:
Beskrivning | Ställ in nyckel till | Ställ in värde till |
---|---|---|
En inkommande nyckel som börjar med 22 och som består av exakt 8 siffror bör föregås av värdet 0047 |
22 (......) | 004722 $ 1 |
För inkommande nyckel som börjar med 0047 och som innehåller ett okänt antal tecken efter detta bör 0047 tas bort. | 0047 (. *) | $ 1 |