..
Heel vaak programmeurs zijn in de positie van het moeten tekenreeksen ontleden.
Een typisch geval is bij het verwerken van een tekst die door een gebruiker te zoeken - en uiteindelijk te elimineren - bepaalde tekens.
Ter vereenvoudiging van deze en andere soorten activiteiten, blijken zeer nuttig zijn zogenaamde reguliere expressies.
Een reguliere expressie bestaat uit een 'abstract model "van een string die wordt gebruikt om vergelijkingen te maken om na te gaan dat in vergelijking de string bepaalde opmaak eisen voldoet. Het kan ook gebruik maken van reguliere expressies te extraheren of te vervangen delen van de tekst.
Laten we eens een voorbeeld zien bedoeld om te laten zien hoe deze uitdrukkingen. Met behulp van Visual Studio We maken een eenvoudige console applicatie (die noemen we TestRegExp) dat twee objecten van type string als invoer neemt en bepaalt of de eerste van hen (een reguliere expressie) wedstrijden per seconde of minder. Moeten worden opgenomen in de System.Text.RegularExpressions naamruimte en maken de vergelijking met de statische System.Text.RegularExpressions.Regex.IsMatch
met behulp van System.Text.RegularExpressions;
namespace TestRegExp
{
ClasseTest klasse
{
static void Main (string [] args)
{
if (Regex.IsMatch (args [1], args [0]))
Console.WriteLine ("De invoer in het model.");
anders
Console.WriteLine ("De invoer niet respecteert het opgegeven formaat .");}}}
Op dit punt hebben we de applicatie uit te voeren als de eerste parameter en langs de reguliere expressie "^ \ d {5} $" (we zullen binnenkort zien de betekenis van vragen symbolen) en de tweede als de string "1234" of "12345". De output van de toepassing in het geval van de string "1234" moet zijn "De ingang is niet de opgegeven indeling te respecteren." Terwijl in het geval van "12345" input in het formaat. "
C: \> TestRegExp ^ \ d {5} 1234 dollar
De input is niet respecteren van de gedefinieerde indeling.
C: \> TestRegExp ^ \ d {5} 12345 dollar
De input in de vorm opgenomen.
Dit komt omdat, zoals u al begrepen, de methode IsMatch vergelijkt een reguliere expressie met een string en retourneert de Booleaanse waarde true wanneer de indeling wordt bepaald door het eerst waargenomen van de tweede, anders false.
In het bovenstaande voorbeeld de reguliere expressie "^ \ d {5} $ 'geeft aan dat de tekenreeks die moet worden geëvalueerd dient te worden van precies 5 nummers (in feite, de vergelijking met" 1234 "false).
Meer in het bijzonder het teken "^" het begin van de string vertegenwoordigt, "\ d" aangegeven dat de tekens moet numeriek zijn, "{5}" geeft de lengte van de string en "$" voor het einde van de string. Als u de personage "^" de betekenis van reguliere expressies zal ingrijpend wijzigen. In feite is de expressie \ d {5} $ zal altijd vereisen de aanwezigheid van de vijf nummers in de volgorde, maar ook de string "abcd12345" of "ciaociao12345", omdat de betekenis ervan is te valideren "string die eindigt met vijf opeenvolgende nummers."
Een goede regel om te volgen is om het karakter "^" altijd op aan het begin van een reguliere expressie en het karakter "$" op het einde daarvan. Deze regeling zorgt ervoor dat de ingang precies moet de reguliere expressie en niet louter bevatten compatibel zijn met dezelfde karakters.
| |
ASP Zero (Ebook)
Leren Microsoft ASP en VBScript vanaf nul. Op slechts 29 €. |
| |
Linux (Cursus)
Complete gids voor open-source systeem. Van 49 €. |
| |
XML (Cursus)
Creatie van XML-structuren, XSL en andere talen uit te breiden. Vanaf 29 €. |