Regular Expressions Overzicht

Door Rick , 25 jaar geleden, 6.418x bekeken

Dit is een overzicht van de meestgebruikte RegExp mogelijkheden

Gesponsorde koppelingen

Inhoudsopgave

  1. Intro
  2. De Functies
  3. Het gebruik van Regexp
  4. Pattern Modifiers

 

Er zijn 9 reacties op 'Regular expressions overzicht'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
B a s
B a s
25 jaar geleden
 
0 +1 -0 -1
goede tutorial, heb ik wat aan iig :) tnx!
PHP erik
PHP erik
25 jaar geleden
 
0 +1 -0 -1
niet echt uitgebreid eigenlijk..
maar het is in ieder geval beter dan niks
Rick
Rick
25 jaar geleden
 
0 +1 -0 -1
Quote:
niet echt uitgebreid eigenlijk..
maar het is in ieder geval beter dan niks
Het bevat alle basismogelijkheden van RegExp, niet alle
als je alle functies begrijpt die hierbij staan dan kan je hele flinke regexes maken hoor

en als je nog iets toe te voegen hebt zeg het dan gerust, dan zet ik het erbij :)
Mitch X
Mitch X
25 jaar geleden
 
0 +1 -0 -1
En voor de RegEx noobs onder ons :)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?
# Regular Expressions:

"^Ik" // geeft aan dat een string moet beginnen met "Ik"

"en jij$" // geeft aan dat de string moet eindigen op "en jij"

"^Ik en jij$" // hier moet de string beginnen met "Ik en jij" maar er ook op eindigen, alleen "Ik en jij" is dus correct

"ik" // geeft aan dat een string de waarde "ik" moet bevatten


"ab*" // geeft aan dat na de a een aantal b's moeten komen (dit kunnen er ook nul zijn) bv. "a" (dan zijn er 0 b's) "ab", "abb", "abbb" enz

"ab+" // is vrijwel hetzelfde alleen mag b geen nul keer voorkomen dus "ab", "abb", "abbb" enz

"ab?" // geeft aan dat b nul of 1 keer mag voorkomen


"ab{2}" // geeft aan dat de a gevolgt wordt door exact 2 b's dus "abb"

"ab{2,}" // geeft aan dat de a gevolgt wordt door minimaal 2 b's "abb", "abbb" enz

"ab{1,3}" // geeft aan dat a gevolgt wordt door 1, 2 of 3 b's dus "ab", "abb" of "abbb"


"a(bc)*" // de haakjes geven aan dat het om dat hele stuk gaat dus bc komt nul of meer keer voor: "a", "abc", "abcbc" enz

"a(bc){1,3}" // geeft aan dat bc 1 tot 3 keer voor moet komen "abc", "abcbc" of "abcbcbc"


"hoi|dag" // geeft aan dat een string hallo of dag moet bevatten

"(hoi|dag)ik" // geeft aan dat er voor ik hoi of dag moet staan

"(ab|bc)*d" // geeft aan dat d voorafgegaan moet worden door ab of bc


"[a-d]" // geeft aan dat een string de kleine letters a tot en met d moet bevatten

"[a-zA-Z]" // betekent alle kleine a-z en alle hoofd A-Z

"[0-9]" // geeft een string aan met cijfers 0-9

"[a-zA-Z0-9]" // combineert de twee hierboven


"." // met een punt kunnen we ??n teken defineren

"a.[0-9]" // de waarde a wordt gevolgt door een willekeurig teken en een getal tussen 0-9

"^.{5}$" // houdt in dat de string 5 willekeurige tekens bevat

/*note : als je het bv dollarteken los van de expressie wil gebruiken doe je dat zo "\$" (binnen de [] niet daar is een $ gewoon een $)
         (maar wel [\.] en [\-])*/



"[^a-d]$" // geeft aan dat een string niet eindigt op de letters a-d

"^[^A-Z]\.$" // geeft aan dat een string niet met een hoofdletter begint maar wel op een punt eindigt
?>
Mitch X
Mitch X
25 jaar geleden
 
0 +1 -0 -1
Jaja ik weet dat dat er ook staat maar met veel voorbeelden leer je sneller :)

(Bas doe er iets aan zodat deze ook editable worden plz)
Rick
Rick
25 jaar geleden
 
0 +1 -0 -1
hmm ja, die van mij was meer voor mensen die al wat ervaring ermee hebben
maar met wat voorbeelden zou het beter zijn ja, het lijkt mij logisch over hoet het gebruikt moet worden maar dat komt omdat ik hier al redelijk wat ervaring mee hebt (ik kan van javascript, asp, vbscript, perl, c en c++ zo vertellen welk commando je moet gebruiken)
Jelmer -
Jelmer -
24 jaar geleden
 
Willem vp
Willem vp
23 jaar geleden
 
0 +1 -0 -1
Als rechtgeaard detailfetisjist (met 15 jaar ervaring in het opstellen van regexps) wil ik nog even iets rechtzetten wat de meeste mensen zich niet schijnen te realiseren:

^ is NIET het begin van een string
$ is NIET het eind van een string

Wat is het wel?

^ is het begin van een REGEL
$ is het eind van een REGEL

Wat is het verschil?

Stel: we nemen de regexp /^tekst$/ en we proberen dit te matchen met een tekst in $input.

Vanzelfsprekend matcht dit bij $input = "tekst", maar let op: dat wil niet zeggen dat dit de enige situatie is waarin de match positief is, want ook bij $input = "blabla\ntekst\nzwets" zal de regexp matchen!

Als je regexps gebruikt om op die manier je script te behoeden voor verkeerde input, kun je voor interessante verrassingen komen te staan.

Wil je dit probleem omzeilen, dan moet je andere anchors gebruiken:

\A is het begin van een STRING
\z is het eind van een STRING (matcht geen \n op het eind)
\Z is het eind van een STRING (matcht ook \n op het eind)

Oftewel:
/\Atekst\z/ matcht "tekst" en niet "tekst\n"
/\Atekst\Z/ matcht zowel "tekst" als "tekst\n" maar niet "tekst\nzwets"

Het is maar dat je het weet ;-)
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Jelmer -
Jelmer -
23 jaar geleden
 
0 +1 -0 -1
Zover ik heb begrepen ligt het gedag van ^ en $ af van een modifier.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. Intro
  2. De Functies
  3. Het gebruik van Regexp
  4. Pattern Modifiers

Labels

  • Geen tags toegevoegd.

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.