Inleiding
Dit document beschrijft hoe reguliere expressies (regex) werken en hoe ze in expressway servers getest kunnen worden.
Voorwaarden
Vereisten
Cisco raadt kennis van de volgende onderwerpen aan:
- Video Communications Server (VCS)- en expresswayservers
- TelePresence-apparaten
- Business to Business (B2B) bellen
- Implementaties van collaboration
Gebruikte componenten
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Achtergrondinformatie
Reguliere expressies zijn reeksen tekens die patronen definiëren die worden gebruikt om strings in tekst aan te passen. Deze strings kunnen dan worden aangepast of behouden op zoekregels of transformaties, dit zijn de meest voorkomende toepassingen voor reguliere expressies.
Typen reguliere expressies
Basisexpressies
- Dot (.) komt overeen met elk willekeurig teken.
- Cijfer (\d) komt overeen met elk willekeurig decimaal cijfer.
- Asterisk (*) Komt overeen met 0 of meer herhalingen van het vorige teken of de vorige expressie.
- Het plusteken (+) komt overeen met 1 of meer herhalingen van het vorige teken of de vorige expressie.
- Het vraagteken (?) komt overeen met 0 of 1 herhaling van het vorige teken of de vorige expressie.
- De krullende steun {n} past n herhalingen van het vorige karakter of de uitdrukking aan, bijvoorbeeld, (\d {3}) past om het even welk 3 cijferkoord aan.
- De krullende bereik van de steun {n,m} past n aan m herhalingen van het vorige karakter of de uitdrukking, bijvoorbeeld, (\d {3.5}) om het even welk 3, 4 of 5 cijferkoord aan.
- Haakjes [...] Komt overeen met een verzameling gespecificeerde tekens, deze kunnen afzonderlijk worden gespecificeerd of in een bereik, bijvoorbeeld, [abc] komt overeen met de tekens a, b of c.
- Om een bereik op te geven, gebruikt u het koppelteken (-) tussen het begin en het einde van het bereik. Zo komt [a-z] overeen met elk alfabetisch teken.
- Het gebruik van caret (^) nadat de open haak de match omkeert, bijvoorbeeld, [^a-z] komt overeen met elk niet-alfabetisch teken.
- Haakjes (...) groepeert een verzameling overeenkomende tekens. Deze groepen kunnen later worden van verwijzingen voorzien in volgorde met behulp van de tekens \n als deel van een replace string.
- Pipe (|) Matches tegen een of een alternatieve expressie, bijvoorbeeld, (com|net) komt overeen met een van de strings com of net.
Andere expressies
- (?!...) Dit is een negatieve blik vooruit. Bepaalt een subexpressie die niet aanwezig mag zijn.
- %localdomains% komt overeen met alle SIP-domeinen die momenteel op de server zijn geconfigureerd.
Patronen maken en testen
De Expressway servers bieden een tool om patronen te testen zonder wijzigingen in de configuratie om mogelijke zakelijke impact te vermijden bij het maken van nieuwe items.
Deze tool is te vinden op de webinterface van de Expressway-server, navigeer naar Onderhoud > Gereedschappen > Patroon controleren.
Patroongereedschap controleren
- Alias: De te testen string kan de bestemming of registratie Uniform Resource Identifier (URI) zijn. Deze string wordt vergeleken met de patroonstring die getest wordt op een match.
- Patroontype: Deze instelling bepaalt hoe de patroonreeks wordt behandeld wanneer een patroon wordt geselecteerd. Regex wordt het meest gebruikt.
- Exact: De hele string moet exact overeenkomen met het alias karakter voor het karakter.
- Prefix: De string moet verschijnen aan het begin van de alias.
- Suffix: De string moet verschijnen aan het einde van de alias.
- Regex: De string wordt behandeld als een reguliere expressie.
- Patroonstring: Het patroon waartegen de alias wordt vergeleken.
- Patroongedrag: De actie die wordt uitgevoerd op een patroonmatch. Als een wijziging moet worden uitgevoerd, wordt een nieuw tekstvak ingeschakeld om de wijziging op te geven.
- Strip: Verwijdert het bijbehorende voorvoegsel of achtervoegsel uit het alias. Alleen beschikbaar als het patroontype is ingesteld op prefix of achtervoegsel.
- Vertrek: Er wordt geen wijziging aangebracht aan het alias.
- Vervangen: vervangt het bijpassende deel van het alias door de tekst in de vervangingsstring.
- Voorvoegsel toevoegen: De aanvullende tekst wordt vooraf aan het alias toegevoegd.
- Achtervoegsel toevoegen: De aanvullende tekst wordt toegevoegd aan het alias.
Veelgebruikte Regex-voorbeelden
Match Everything Wildcard
Dit patroon wordt veel gebruikt wanneer er geen specifieke patroonovereenkomst vereist is, maar een zoekregel of transformatie moet worden overwogen, de reguliere expressie (.*) komt overeen met elke invoer, ongeacht formaat of lengte. De punt komt overeen met elk teken en de asterisk is elke hoeveelheid herhalingen van die expressie.
Match Everything Wildcard Voorbeeld 1
Hetzelfde patroon slaagt ongeacht de alias invoer.
Match Everything Wildcard Voorbeeld 2
Lokale en niet-lokale domeinen aanpassen
Dit wordt algemeen gebruikt voor het aanpassen van een patroon met een bestemming van één van de lokale domeinen die op de server worden gevormd en de vraag plaatselijk verstuurd houden in plaats van het aan Internet te leiden. Regex %localdomains% kan als achtervoegsel of als tweede deel van het regexpatroon worden gebruikt.
Om lokale domeinen te configureren navigeer je naar Configuration > Domains.
Lokaal ingestelde domeinen
De patroonovereenkomst mislukt voor elk ander domein dan de lokaal geconfigureerde domeinen.
Falen overeenkomsten lokale domeinen
En het slaagt voor om het even welke plaatselijk gevormde domeinen.
Lokaal domein overeenkomend succes
De negatieve look voor dit patroon (?!.*@%localdomains%) kan ook worden gebruikt voor het tegenovergestelde resultaat. Dit betekent dat elk alias dat niet de lokale domeinen is een succesvolle match is.
Negatieve Lookahead voor lokale domeinen
Uitbreidingen van verschillende domeinen aanpassen
Dit patroon wordt algemeen gebruikt wanneer het bedrijf een domein met meerdere extensies bezit en het mogelijk maakt om een van beide te bellen, maar voor gespreksbeheer moeten deze eerst worden genormaliseerd voordat men de zoekregels overweegt.
Dit wordt meestal bereikt door transformaties met het gebruik van de reguliere pijp (|) expressie.
Domain Extension Voorbeeld 1
Het zelfde patroon past het domein met één van beiden van de twee domeinuitbreidingen aan maar zet het in de genormaliseerde die uitbreiding als resultaat wordt gekozen.
Domain Extension Voorbeeld 2
Overeenkomende patronen voor fraude met tolgelden
De overeenkomsten tussen oproepen met tolfraude liggen vaak in het aantal gebelde cijfers, internationale oproepen vereisen een landcode gevolgd door het gebelde telefoonnummer, waardoor deze oproepen ten minste 7 cijfers hebben. Het is ook gebruikelijk dat interne kiesschema's binnen bedrijven ongeveer 4 tot 6 cijfers lang zijn.
Dit creëert een duidelijk verschil dat kan worden gebruikt om verschillende acties te ondernemen voor een van deze soorten oproepen. Met behulp van de cijferteller regex, kunt u specificeren welke actie met elke vraag te nemen.
Voorbeeld 1
Dit patroon komt alleen overeen met elk alias tussen 7 en 15 cijfers. Minder cijfers resulteren niet in een overeenkomst.
Voorbeeld 2
Elk ander teken, naast cijfers, resulteert ook in een fout.
Voorbeeld 3
Groepen en referentiepatronen
Groepen en referenties worden gebruikt samen met regex patronen om bepaalde secties van een alias aan te passen terwijl anderen behouden blijven, dit is handig bij het toevoegen of verwijderen van prefixes of het wijzigen van domeinen. Groepen worden aangewezen op de sectie van de patroonreeks, en de referenties worden op volgorde uitgevoerd in het veld Vervangen string.
Groepen en referenties Voorbeeld 1
In dit voorbeeld is er een letterlijke match met @cisco.com en de testuri string wordt gematched en gegroepeerd door de match all regex.
De \1 referentie in de vervangingsstring roept de eerste groep binnen de patroonstring terug, die links maakt naar de URI, ongeacht wat de URI is, en daarom wordt de URI behouden in de resultaatalias.
Het domein wordt niet vermeld in de vervangen string, maar wordt vervangen door internaldomain, dit kan worden gezien in het resultaat alias.
Groepen kunnen ook gebruikt worden om de URI opnieuw te ordenen, omdat dit flexibele kiesschema's mogelijk maakt.
Groepen en referenties Voorbeeld 2
In dit voorbeeld is er een alias met het formaat van 5 cijfers, gevolgd door een punt en een ander cijfer, gevolgd door het domein.
In de patroonstring zijn er verschillende groepen en secties die afzonderlijk geanalyseerd kunnen worden.
- Groep 1, het patroon (\d {5}) komt overeen met 5 cijfers aan het begin van de string.
- De reguliere expressie (\.) komt overeen met een letterlijke stip, dit betekent dat voor het oorspronkelijke alias een stip nodig is na de 5 initiële cijfers.
- Groep 2, het patroon (\d) komt overeen met één cijfer.
- Groep 3, het letterlijke patroon (@cisco.com) komt alleen overeen met die reeks tekens, dit kan verder worden aangepast om meerdere domeinen, of een string na de vorige overeenkomsten te omvatten.
Zodra het alias overeenkomt met de patroonstring, zorgt de actie ervoor dat deze wordt vervangen door de replace string.
De replace string referenties de vorige groepen in een nieuwe volgorde.
- De referentie \2 roept terug groep 2, dit is het enkele cijfer na de punt en voor het domein.
- De referentie \1 roept terug groep 1, dit is de eerste 5 cijfers van het alias.
- De referentie \3 roept terug groep 3, dit is de domein sectie van de alias
- De punt wordt nooit genoemd en maakt geen deel uit van een groep, daarom maakt het geen deel uit van de resultaatalias.
Het alias heeft dan dezelfde cijfers als het oorspronkelijke alias, maar dan met het cijfer dat oorspronkelijk achter het punt lag, aan het begin van het alias.
De punt die de 5 cijfers en het enkele cijfer scheidde, maakt niet langer deel uit van het alias, het domein blijft behouden.
Niet elke groep hoeft te worden verwezen, een groep waar niet naar wordt verwezen maakt geen deel uit van het resultaat alias.
Gerelateerde informatie
Cisco Technical Support en downloads