Karakterstelle in PHP se regulêre uitdrukkings
Karaktergroepe \d en \w is nie
baie buigsaam nie. Selfs 'n eenvoudige taak soos
vind alle letters, maar nie syfers nie -
kan nie deur hulle opgelos word nie. Vir sulke take
moet vierkantige hakies gebruik word, wat
'n OF-bewerking verteenwoordig.
Vierkantige hakies vervang een karakter,
enige van die wat binne gelys is. Byvoorbeeld,
so: #x[abc]x# - sê ons dat
aan die kante x-letters moet wees, en binne
- een karakter: óf 'a', óf 'b',
óf 'c'.
Na vierkantige hakies kan herhalingsoperators
geskryf word. Byvoorbeeld, so: #x[abc]+x#
- sê ons dat binne die x's enige aantal karakters 'a', 'b'
en 'c' kan wees - in enige kombinasies.
Jy kan nie net karakters lys nie, maar ook
karaktergroepe skep deur 'n koppelteken tussen twee karakters
te skryf. Byvoorbeeld, so: #[a-d]#
- kry ons alle karakters van 'a' tot
'd'.
Kom ons kyk na voorbeelde.
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
tussen x's enige letter van 'a'
tot 'z':
<?php
$str = 'xax xbx xcx x@x';
$res = preg_replace('#x[a-z]x#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike geskryf word:
'! ! ! x@x'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
tussen x's enige letter van 'a'
tot 'k':
<?php
$str = 'xax xbx xmx x@x';
$res = preg_replace('#x[a-k]x#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike geskryf word:
'! ! xmx x@x'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
tussen x's enige letter van 'A'
tot 'Z':
<?php
$str = 'xax xBx xcx x@x';
$res = preg_replace('#x[A-Z]x#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike geskryf word:
'xax ! xcx x@x'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
tussen x's enige syfer van 0 tot 9:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[0-9]x#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike geskryf word:
'xax ! ! ! x@x'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
tussen x's enige syfer van 3 tot 7:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[3-7]x#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike geskryf word:
'xax x1x ! ! x@x'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
tussen x's enige letter van 'a'
tot 'z' of syfer van 1 tot 9:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[a-z1-9]x#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike geskryf word:
'! ! ! ! x@x'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
tussen x's enige letter van 'a'
tot 'z' of letter van 'A' tot
'Z':
<?php
$str = 'xax xBx xcx x5x x@x';
$res = preg_replace('#x[a-zA-Z]x#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike geskryf word:
'! ! ! x5x x@x'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
tussen x's enige letter van 'a'
tot 'z' of syfers 1, 2:
<?php
$str = 'xax xbx x1x x2x x3x';
$res = preg_replace('#x[a-z12]x#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike geskryf word:
'! ! ! ! x3x'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
tussen x's letters van 'a' tot 'z'
in hoeveelheid van 1 en meer:
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]+x#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike geskryf word:
'xx ! ! ! x123x xa3x'
Voorbeeld
Laat ons dit so maak dat die hoeveelheid letters ook nul kan wees:
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]*x#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike geskryf word:
'! ! ! x123x xa3x'
Praktiese take
Gegewe 'n string:
<?php
$str = 'aba aea aca aza axa';
?>
Skryf 'n regulêre uitdrukking wat volgens die volgende
patroon sal vind: aan die kante is daar letters 'a',
en tussen hulle - letter 'b', 'e'
of 'x'.
Gegewe 'n string:
<?php
$str = 'a1a a3a a7a a9a aba';
?>
Skryf 'n regulêre uitdrukking wat volgens die volgende
patroon sal vind: aan die kante is daar letters 'a',
en tussen hulle - syfer van 3-de tot 6-de.
Gegewe 'n string:
<?php
$str = 'aba aea afa aha aga';
?>
Skryf 'n regulêre uitdrukking wat volgens die volgende
patroon sal vind: aan die kante is daar letters 'a',
en tussen hulle - letter van a tot g.
Gegewe 'n string:
<?php
$str = 'aba aea afa aha aga';
?>
Skryf 'n regulêre uitdrukking wat volgens die volgende
patroon sal vind: aan die kante is daar letters 'a',
en tussen hulle - letter van a tot f en van j tot z.
Gegewe 'n string:
<?php
$str = 'aAa aea aEa aJa a3a';
?>
Skryf 'n regulêre uitdrukking wat volgens die volgende
patroon sal vind: aan die kante is daar letters 'a',
en tussen hulle - letter van a tot f en van A tot D.
Gegewe 'n string:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Skryf 'n regulêre uitdrukking wat volgens die volgende
patroon sal vind: aan die kante is daar letters 'a',
en tussen hulle - klein Latynse letters,
sonder om die ander te raak.
Gegewe 'n string:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Skryf 'n regulêre uitdrukking wat volgens die volgende
patroon sal vind: aan die kante is daar letters 'a',
en tussen hulle - klein en groot Latynse
letters, sonder om die ander te raak.
Gegewe 'n string:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Skryf 'n regulêre uitdrukking wat volgens die volgende
patroon sal vind: aan die kante is daar letters 'a',
en tussen hulle - klein Latynse letters
en syfers, sonder om die ander te raak.