Regular Expressions bieden de programmeur met krachtige tools voor tekstanalyse en manipulatie . Overal gevonden van e - commerce formulier validatie op high-stakes rechtszaken - waar advocaten zoeken naar combinaties van woorden in de e-mailberichten die optellen tot " schuldig " - regexes horen in toolbox elke programmeur . Helaas , hun geheimzinnige syntax staat als een barrière voor veel gebruikers die zouden kunnen profiteren van hen. Een mogelijke toepassing is het scannen van een tekst voor Universal Resource Locator , gemeenzaam bekend als webadressen . De Python programmeertaal volbrengt deze taak in slechts een paar regels code . Wat je nodig hebt Python 2.6 of hoger , met de IDLE geïntegreerde ontwikkelomgeving tekst bestand voor het testen Toon Meer Aanwijzingen 1 Open IDLE en maak een testen tekstbestand door kopiëren en plakken van een aantal willekeurige tekst in het bestand samen met een aantal URL's . Sla het bestand op als TestText.txt in de directory die opkomt in het dialoogvenster opslaan , zodat u niet hoeft te maken over paden tussen de Python-interpreter en dit bestand . Kopen van 2 Ga naar de belangrijkste IDLE -venster en typ >>>> import re bij de Python prompt . . Dit laadt Python's reguliere expressie motor 3 Lees je tekst test in Python en te houden in het geheugen met de volgende opdrachten : >>> testText = geopend >>> rauw = TestText.read ( ) OCB_1.txt ( ' OCB_1.txt ' ) op Twitter is de naam van mijn testbestand - een kopie en plakken van Ambrose Bierce 's " een voorval bij Owl Creek Bridge , " met een paar URL's geplakt inch In het bovenstaande commando , wordt het tekstbestand geopend en toegewezen aan de variabele testText , het wordt dan in het geheugen gelezen met de toegekende variabele ruwe . Goedkope 4 Pre - compileren de reguliere expressie met het oog op het versnellen van de parsing proces . Dit is vooral handig als het gaat om grote tekstbestanden . Typ de volgende opdrachten bij de Python prompt : >>> pattobj = re.compile ( ' https ://( [ - \\ w \\ . ] + ) + ( : ? \\ D + ) ? ( /( [ \\ w /_ \\ . ] * ( \\ ? \\ S + ) ? ) ?) ? ' ) 5 Roep de findall methode door het intikken van de relevante regex opdracht samen met de variabele verwijst om de tekst in het geheugen : findallobj = pattobj.findall ( rauw ) op Dit creëert een nieuwe variabele , findallobj , dat bevat de patronen opgeleverd door de regex 6 . Geef de URL van de reguliere expressie gevonden met de printopdracht : afdruk ( findallobj ) op de uitvoer ziet er ongeveer als volgt : [ ( ' www.sjca . edu ' ) , ( ' www.cantlers.com /index.shtml ' ) ]
|