Sakke met regulêre uitdrukkingsvervanging op PHP
Wanneer jy werk met die funksie preg_replace,
as ons iets in 'n sak in die regulêre uitdrukking plaas,
kan ons die inhoud van daardie sak in die vervangingsstring
insit deur die dollarteken $ en die saknommer te skryf.
Byvoorbeeld, $0 - die nulde sak,
$1 - die eerste sak, $2 - die tweede
sak, en so aan.
Laat ons kyk na voorbeelde om te sien waarom dit nuttig is en hoe om dit te gebruik.
Voorbeeld
Laat ons alle nommers vind en hulle vervang met dieselfde nommers, maar tussen krulhakies. Om dit te doen, sal ons alle gevinde nommers vervang met hulself, maar tussen krulhakies:
<?php
$str = '1 23 456 xax';
$res = preg_replace('#(\d+)#', '{$1}', $str);
?>
As gevolg sal die volgende in die veranderlike weggeskryf word:
'{1} {23} {456} xax'
Voorbeeld
Laat ons alle stringe vind wat
nommers voorstel met 'x'e rondom en hierdie
nommers vervang met hulself, maar met '!' tekens rondom:
<?php
$str = 'x1x x23x x456x xax';
$res = preg_replace('#x(\d+)x#', '!$1!', $str);
?>
As gevolg sal die volgende in die veranderlike weggeskryf word:
'!1! !23! !456! xax'
Voorbeeld
Laat ons die volgende probleem oplos: daar is stringe
van die vorm 'aaa@bbb' - letters, dan 'n apestaartjie,
dan letters. Ons moet die letters
voor '@' en na omruil. Laat ons implementeer:
<?php
$str = 'aaa@bbb ccc@ddd';
$res = preg_replace('#([a-z]+)@([a-z]+)#', '$2@$1', $str);
?>
As gevolg sal die volgende in die veranderlike weggeskryf word:
'bbb@aaa ddd@ccc'
Praktiese take
Daar is 'n string:
<?php
$str = '12 34 56 78';
?>
Ruil die syfers in alle twee-syfer nommers om.
Daar is 'n string met 'n datum:
<?php
$str = '31.12.2025';
?>
Skepper hierdie datum om na '2025.12.31'.