Søk, jokertegn og intervaller
I et listeoppslag tester vi om det er noen oppføringer i listen som har en innkommende nøkkel (for eksempel innringers telefonnummer, angitt DTMF eller e-postemne) som samsvarer med nøkkelen i en rad i listen. Hvis det gjøres et treff, returneres den (første) samsvarende oppføringens verdi.
Den innkommende nøkkelen kan bare være et enkelt (konstant) element. Jokertegn eller intervaller er ikke tillatt her.
Nøkkelfeltet til en oppføring i en liste kan være et enkelt element (en konstant), et intervall eller et enkelt element som inneholder ett eller flere jokertegn. Kombinasjoner av intervall og jokertegn i nøkkelen for en listerad er ikke tillatt.
Intervaller i listens nøkkelfelt
- Fra-verdi og til-verdi er adskilt med : (kolon)
- Til-verdien er med i intervallet. Eksempel på nøkkelintervall: 21000000 : 21999999
Jokertegn i nøkkelfeltet
Jokertegnsøk og erstatning (neste kapittel) er basert på syntaks kjent fra Perl-baserte vanlige uttrykk. Men det er et sett begrensninger sammenlignet med full Perl-syntaks. Det som støttes som del av nøkkelen, er følgende:
- Representerer et hvilket som helst antall tegn: .* (dvs. ett punktum etterfulgt av asterisk)
- Representerer ethvert enkelttegn: . (dvs. ett punktum)
Eksempler:
Beskrivelse | Nøkkel |
---|---|
Søk etter et hvilket som helst nummer som begynner med 47 | 47. * |
Søk etter tall som begynner med 47, og som har totalt 10 sifre (dvs. åtte sifre etter 47) | 47 ........ |
Søk etter et hvilket som helst nummer som begynner med 47 og slutter med 99. Mellom 47 og 99 skal det være minst to tegn. | 47 ... * 99 |
Søk etter tekst som slutter med abc | . * abc |
Søk etter tekst som begynner med abc | abc. * |
Søk etter tekst som inneholder abc | . * abc. * |
Avansert:
Markering av at tegn ikke skal leses som jokertegn
Hvis et punktum skal være en del av nøkkelen og ikke behandles som jokertegn, må du skrive inn en omvendt skråstrek (escape-tegn) før punktumet. Det samme gjelder for asterisk hvis asterisken kommer etter et punktum. En asterisk som står alene (dvs. ikke rett etter et punktum), derimot, forstås som en del av nøkkelen uten den omvendte skråstreken. Eksempler på slik bruk av omvendt skråstrek:
Beskrivelse | Nøkkel |
---|---|
Lag en nøkkel som skal samsvare med en innkommende nøkkel med den faste verdien 47*1 | 47 * 1 |
Lag en nøkkel som skal samsvare med en innkommende nøkkel som begynner med 47, som deretter har et hvilket som helst slags tegn, umiddelbart etterfulgt av *9 (et eksempel på en slik innkommende nøkkel er 473*9) | 47. \ * 9 |
Lag en nøkkel som skal samsvare med en innkommende nøkkel med den faste verdien 47.1. | 47 \ .1 |
Erstatning:
En returverdi (fra treffet i oppslaget) kan manipuleres slik at den inneholder deler av (eller hele) den innkommende nøkkelen. Slik gjør du det:
- Et jokertegnuttrykk kan stå i parentes, slik at det blir en jokertegngruppe
- Det kan være mer enn én jokertegngruppe i en og samme nøkkel. Tegnene i en innkommende nøkkel som samsvarer med en bestemt jokertegngruppe, kan være en del av den returnerte verdien.
- Plassholdere (i den spesifiserte returverdien) for disse jokertegngruppene er $1 for den første gruppen, $2 for den andre, $3 for den tredje osv.
Eksempler:
Beskrivelse | Sett nøkkel til | Sett verdi til |
---|---|---|
En innkommende nøkkel som begynner med 22, og som består av nøyaktig 8 sifre, skal ha verdien 0047 som prefiks | 22 (......) | 004722 $ 1 |
En innkommende nøkkel som begynner med 0047, og som har et ukjent antall tegn etter det, skal få fjernet 0047. | 0047 (. *) | $ 1 |