..


Gesponsorde links

Reguliere expressie voor de ISAPI Rewrite filter

Artikel geschreven door Max Bossi
Pagina 1 van 3

In een eerder artikel van mijn vriend en collega Luca Ruggiero zagen we hoe om te gaan werken met het ISAPI-filter voor het herschrijven van de URL's op IIS.

In dit artikel staat als een soort voortzetting van het pad al begonnen en heeft tot doel een beetje 'theorie uit te leggen, zodat u de instructies voor het herschrijven van steeds complexere en worden verweven met de ondersteuning van reguliere expressies te schrijven.

Speciale tekens

We beginnen bij het zien van de cd. speciale tekens, dat wil zeggen tekens die een speciale betekenis hebben in verband met hun klassieke waarde tekst:

Karakter Betekenis
. Elk teken
* Nul of meer herhalingen van het teken aan de linkerkant
+ Een of meer herhalingen van het teken aan de linkerkant
? Het teken aan de linkerkant kunnen aanwezig zijn of niet
| De keuze tussen wat goed is en de linker
^ Top van de lijn of het symbool van ontkenning als ze in een reeks van karakters
$ Einde van de lijn
(E) Ze worden gebruikt om de sub-expressies te maken, of om de variabele die vervolgens zal worden aangeroepen met $ N te identificeren
{En} Ze worden gebruikt om de minimale en maximale lengte van de string aan te geven naar links
[En] Het bevat een reeks van karakters

Een paar voorbeelden om beter inzicht in de betekenis van deze speciale tekens.
 



 .

 
: Een karakter en aanvaardt dan een (uno!) een willekeurig karakter.
 



 .*

 
De uitdrukking hierboven is altijd gecontroleerd, omdat het akkoord een lege string is een willekeurige tekenreeks, zoals onze symboliek bevat een herhaling voor onbepaalde tijd (van nul tot oneindig) van alle tekens.
 



 ab *

 
Deze uitdrukking is getest met de volgende resultaten: "a", "ab", "abb", "abbb", "abbbb ",...
 



 ab +

 
Gebeurt met "ab", "abb", "abbb ",... maar niet met "een"!
 



 ab?

 
Gebeurt met "een" of "ab".
 



 {Ab} 2,4

 
Gebeurt met "ABB", "abbb", "abbbb".
 



 ^ A. *

 
Gebeurt met een willekeurige tekenreeks die begint met de letter "a"
 



 .* Z $

 
Gebeurt met een string die eindigt met de letter "z"
 



 ^ C * een $

 
Gebeurt met een willekeurige tekenreeks die begint met "c" en eindigt met de letter "a". Bijvoorbeeld: "home", "Paper", "lijm", enz..
 



 abc | def

 
Gebeurt met "abc" of met "def"
 



 een (b | c)

 
Gebeurt met "AB" of met "ac". Om dit te bereiken hebben we gebruik gemaakt van een paar haakjes om een ​​sub-expressie in de contemplatie, in ons voorbeeld, de keuze tussen "b" en "c"
 



 [AZ]

 
Met het gebruik van vierkante haakjes hebben we een reeks tekens. In ons voorbeeld hebben we een reeks tekens, variërend van "een" tot "z" en dan omvat het hele alfabet.
Merk op dat het gebruik van de "z" niet gelijk is aan 'Z' zoals in het eerste geval zullen we overeenkomen met alleen kleine letters in de laatste alleen met de zaak.
 



 [A-zA-Z]

 
De uitdrukking hierboven, echter, laat ons zien hoe te accepteren al deze alfabet tekens zijn niet hoofdlettergevoelig.
 



 [0-9]

 
Deze uitdrukking omvat een willekeurig getal tussen 0 en 9.

 



 [^ 0-9]

 
Deze uitdrukking omvat alle teken behalve nummers. We deden dit door gebruik te maken ontkenning, aan het begin van onze set, het speciale teken ^.

Spreekt voor zich dat het regelen en het combineren van de verschillende bovenstaande voorbeeld merk je dat het mogelijk is om te voorspellen een bijna oneindig aantal mogelijkheden.

Tot slot, natuurlijk, moeten we rekening houden met de mogelijkheid dat de tekens gezien bovenstaande kunnen we treden op in hun klassieke waarde, dwz als louter tekens. In dit geval maken we gebruik van het escape-teken (\) vóór het bijzondere karakter dat we willen gebruiken als een gemeenschappelijke karakter.
Zo zien we hoe te schrijven, in de vorm van esepressione, de string "pagina.html". Zoals we weten het punt is een speciaal karakter en daarom makkelijk te gebruiken als een punt dat we dit moeten doen:

 



 pagina \. html

 
Let wel, natuurlijk, dat dezelfde escape-teken is, op zijn beurt, een speciaal karakter en daarom, als je wilt gebruiken in de letterlijke gemeenschappelijke waarde, moeten we een beroep doen op een dubbel-escape:
 



 \ \

 

In dezelfde categorie ...
E-Learning
ASP (Advanced) ASP (Advanced)
Volledige cursus voor het maken van dynamische websites. Van 39 €.
ASP Zero (Ebook) ASP Zero (Ebook)
Leren Microsoft ASP en VBScript vanaf nul. Op slechts 29 €.
ASP.NET (Cursus) ASP.NET (Cursus)
Volledige cursus voor het bouwen van webapplicaties van 49 €.
Gesponsorde links