Karaktergroepe in PHP regulêre uitdrukkings
Daar is spesiale opdragte wat dit moontlik maak om
heel groepe karakters in een keer te kies. Die opdrag
\d beteken 'n syfer van 0 tot 9.
Die opdrag \w dui op 'n syfer, Latynse
letter of 'n onderstreep-karakter. Die opdrag \s
dui op 'n spasie of 'n spasie-karakter:
spasie, reël omskakeling, tabulasie. Jy kan
die waarde van die opdrag omkeer deur 'n hoofletter
te skryf: byvoorbeeld, as \d - 'n syfer is,
dan is \D - nie 'n syfer nie.
Voorbeeld
Kom ons vind alle syfers:
<?php
$str = '1 12 123';
$res = preg_replace('#\d#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike geskryf word:
'! !! !!!'
Voorbeeld
Herhalingsoperateurs beskou die opdrag-groepe as
'n geheel, dit wil sê groeperende hakies is
nie nodig nie. In die volgende voorbeeld lyk die soekpatroon
so: syfer van 0 tot 9
een of meer keer:
<?php
$str = '1 12 123 abc @@@';
$res = preg_replace('#\d+#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike geskryf word:
'! ! ! abc @@@'
Voorbeeld
In die volgende voorbeeld lyk die soekpatroon
so: enigiets een of meer keer,
maar nie 'n syfer van 0 tot 9 nie:
<?php
$str = '123abc3@@';
$res = preg_replace('#\D+#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike geskryf word:
'123!3!'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so: spasie-karakter een keer:
<?php
$str = '1 12 123 abc @@@';
$res = preg_replace('#\s#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike geskryf word:
'1!12!123!abc!@@@'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
NIE 'n spasie-karakter een of meer keer nie.
Alle substrings, geskei deur spasies, sal vervang word
met '!':
<?php
$str = '1 12 123 abc @@@';
$res = preg_replace('#\S+#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike geskryf word:
'! ! ! ! !'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
syfer of letter een of meer keer.
Alle substrings wat uit syfers en letters bestaan,
sal vervang word met '!':
<?php
$str = '1 12 123a Abc @@@';
$res = preg_replace('#\w+#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike geskryf word:
'! ! ! ! @@@'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
NIE 'n syfer en NIE 'n letter een of meer keer nie.
Onder hierdie definisie val in ons geval
'@@@' en alle spasies (hulle is immers ook
nie syfers of letters nie). Let op
die feit dat aan die einde een '!' is - daarin
is die string ' @@@' omskep - met
'n spasie vooraan:
$str = '1 12 123 Abc @@@';
$res = preg_replace('#\W+#', '!', $str);
As gevolg sal die volgende in die veranderlike geskryf word:
'1!12!123!Abc!'
Praktiese take
Gegee string:
<?php
$str = 'a1a a2a a3a a4a a5a aba aca';
?>
Skryf 'n regulêre uitdrukking wat die strings sal vind,
waarin aan die kante letters 'a' staan,
en tussen hulle een syfer.
Gegee string:
<?php
$str = 'a1a a22a a333a a4444a a55555a aba aca';
?>
Skryf 'n regulêre uitdrukking wat die strings sal vind,
waarin aan die kante letters 'a' staan,
en tussen hulle enige aantal syfers.
Gegee string:
<?php
$str = 'aa a1a a22a a333a a4444a a55555a aba aca';
?>
Skryf 'n regulêre uitdrukking wat die strings sal vind,
waarin aan die kante letters 'a' staan,
en tussen hulle enige aantal syfers (insluitend
selfs nul syfers, dit wil sê die string 'aa').
Gegee string:
<?php
$str = 'avb a1b a2b a3b a4b a5b abb acb';
?>
Skryf 'n regulêre uitdrukking wat strings
van die volgende soort sal vind: aan die kante staan letters
'a' en 'b', en tussen hulle - nie
'n getal nie.
Gegee string:
<?php
$str = 'ave a#b a2b a$b a4b a5b a-b acb';
?>
Skryf 'n regulêre uitdrukking wat strings
van die volgende soort sal vind: aan die kante staan letters
'a' en 'b', en tussen hulle - nie
'n letter en nie 'n syfer nie.
Gegee string:
<?php
$str = 'ave a#a a2a a$a a4a a5a a-a aca';
?>
Skryf 'n regulêre uitdrukking wat alle spasies sal vervang
met '!'.