login  Naam:   Wachtwoord: 
Registreer je!
 Nota's op tutorial:

Tutorials > Overig > Inleiding Reguliere Expressies
Pagina:

Reacties op de tutorial Inleiding Reguliere Expressies


Offline  Abbas
Gepost op: 15 januari 2007 - 18:28
Gouden medaille

Crew .NET


Zeer mooie tutorial, kan hier veel van leren  

Offline  Ibrahim
Gepost op: 15 januari 2007 - 18:34
PHP expert

er valt veel te vertellen over reguliere expressies. Daarom dat ik deze voor beginners heb gemaakt, en mijn volgende zal dan meerdere dingen uitleggen zoals modifiers, conditions, lookarounds etc.

Offline  Pieter
Gepost op: 15 januari 2007 - 19:07
Gouden medaille

SEO guru


Mooie tutorial Ibrahim. Ik denk dat ik er wel wat van kan leren. Bedankt!

Offline  Ibrahim
Gepost op: 15 januari 2007 - 19:30
PHP expert

geen probleem, een belofte is een belofte 

Offline  Voldemort
Gepost op: 16 januari 2007 - 19:08
PHP ver gevorderde

Nice tutorial, kan je de oefeningen ook uitwerken en een beetje uitleg zetten, zo kan je het zien als een voorbeeld dat "nut" heeft.

Verder heb ik nog deze vragen:

Welke functie moet ik gebruiken: preg_match, eregi_replace, ereg_replace, een andere?
Hoe gebruik je deze functies?

Offline  Stijn
Gepost op: 16 januari 2007 - 21:51
PHP expert

Citaat:
[I][B]Voldemort[/B] schreef op 16 Januari 2007 - 19:08[/I]

Nice tutorial, kan je de oefeningen ook uitwerken en een beetje uitleg zetten, zo kan je het zien als een voorbeeld dat "nut" heeft.

Verder heb ik nog deze vragen:

Welke functie moet ik gebruiken: preg_match, eregi_replace, ereg_replace, een andere?
Hoe gebruik je deze functies?

- preg_match: om een string te matchen
  1. <?php
  2. preg_match("#^[a-zA-Z]$#" , "stijn"); // zal matchen
  3. ?>

- preg_replace: om de gematchde dingen te vervangen
  1. <?php
  2. preg_replace("#stijn#" , "stijn1989" , "stijn is een belg"); // zal stijn veranderen in stijn1989
  3. ?>


die ## moet je gebruiken , dat zijn de delimiters (ofzo).

andere vind je op http://www.php.net

@hieronder: preg_replace is handig voor dingen als UBB e.d.
str_replace is eenvoudig en als je de tekst weet.

Offline  Ibrahim
Gepost op: 17 januari 2007 - 17:07
PHP expert

voor die 2e voorbeeld van stijn kun je beter str_replace gebruiken 

Maar ik heb expres die functies niet uitgelegd, omdat die voor php zijn. Mijn tutorial gaat niet over php (daarom zit het in Overige) maar over Reguliere expressies.

En ik heb expres gekozen om de antwoorden niet bij te zetten. Dit is omdat je dan zelf kan proberen. Maar als je de antwoorden wilt hebben, moet je maar PMen 

Offline  jeroentjuh
Gepost op: 17 januari 2007 - 19:15
PHP ver gevorderde

preg_match kun je toch ook gebruiken om de matches in een array op te slaan
  1. <?php
  2. preg_match('/([0-9]{4})([a-zA-Z]{2})/','4659AA',$bla);
  3. print_r($bla);
  4. ?>

dit zal toch als output Array([0] => '4659', [1] => 'AA') hebben
Of gebruik ik de functie nu verkeerd??

Edit
Zeer goede tutorial trouwens

Offline  Ibrahim
Gepost op: 17 januari 2007 - 20:18
PHP expert

ja jeroentjuh met de 3e parameter (optioneel bij preg_match maar verplicht bij preg_match_all) kun je de resultaten van de match in een array opslaan.

Wat jij hebt is vast en zeker een regex om postcodes te matchen?
Maar de eerste cijfer van een postcode mag niet met een 0 beginnen, en je hoeft niet om elk stuk parentheses te zetten hoor.

~[1-9][0-9]{3}[a-zA-Z]{2}~

is een "betere" regex (vind ik )

en als je spaties wilt hebben tussen de cijfers en letters, doe dat dit:

~[1-9][0-9]{3} {min_spaties,max_spaties}[a-zA-Z]{2}~

Offline  jeroentjuh
Gepost op: 17 januari 2007 - 20:26
PHP ver gevorderde

Ja het moest een regex voor een postcode voorstellen.

Dus dit zou een goede regex zijn als je zou willen weten of de postcode valid is?
~[1-9][0-9]{3} {0,1}[a-zA-Z]{2}~

PS, waarom wordt er de ene keer ~ als delimiter gebruikt en de andere keer # of /?


Offline  Ibrahim
Gepost op: 17 januari 2007 - 20:30
PHP expert

als je die regex ontleed, dan zie je dat hij inderdaad klopt 
Een cijfer tussen 1 en 9 gevolgd door precies 3 cijfers tussen 0 en 9.
Daarna een spatie (optioneel, dus kun je ook gewoon ? gebruiken )
Daarna 2 letters, klein of groot

Er zijn, zoals stijn al eerder zei, verschillende delimiters. Maar die zou je op php.net kunnen vinden. Dit valt buiten reguliere expressies itself.

Misschien dat ik een "tutorial" ga maken met een paar talen waar reguliere expressies mogelijk zijn en hoe je ze kunt gebruiken (en met welke functies).

Offline  Stijn
Gepost op: 17 januari 2007 - 22:14
PHP expert

Citaat:
Misschien dat ik een "tutorial" ga maken met een paar talen waar reguliere expressies mogelijk zijn en hoe je ze kunt gebruiken (en met welke functies).
euhm , alle talen gebruiken regulaire expressies... je kan ze zelfs toepassen in de grootste softwares: dreamweaver , office ,....

@hieronder: de reg ex in C is niet easy 

Offline  Ibrahim
Gepost op: 17 januari 2007 - 22:16
PHP expert

dat weet ik stijn, maar ik ga me dan concentreren op de veelgebruikte talen zodat je dan weet welke functies er dan zijn, en hoe je ze moet gebruiken.

Offline  Thomas
Gepost op: 22 januari 2007 - 16:57
Moderator

@2.2.1
Citaat:
Zoals je ziet, gebruik ik in plaats van (.*?) nu 1. Een backreference kun je met slash () of dollar teken($) + referentie nummer aanroepen. Zo word je regex korter, en hoef je geen zorgen te maken dat je een tikfout hebt gemaakt bij de 2e parenthese.


Sterker nog, je wilt "matching pairs". Het gaat fout als je 2x (.*?) gebruikt en er geneste BLOCKs zijn (wss wordt de verkeerde afsluitende block gepakt).

Niet zozeer nuttig, maar meer noodzakelijk dus.

Offline  Ibrahim
Gepost op: 22 januari 2007 - 17:11
PHP expert

ja, daar heb je helemaal gelijk in 

Offline  Wave6
Gepost op: 20 mei 2007 - 16:50
PHP beginner

@ Siliecom14,

Mijn complimenten voor deze tutorial hij is echt goed!
thanks heb er veel van geleerd!

Offline  Ibrahim
Gepost op: 20 mei 2007 - 16:51
PHP expert

geen dank, maar om toch even te vermelden:

Citaat:
Enkel aanvullende informatie is welkom. Geen prijzende of afkeurende reacties.

Pagina:

Enkel aanvullende informatie is welkom. Geen prijzende of afkeurende reacties.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.049s