Mifuko katika Usemi wa Kawaida katika PHP
Yaliyomo kwenye mifuko hayawezi kupatikana tu kwenye mabadilisho ya mfuatano, bali pia kwenye usemi wa kawaida: tunaweza kuweka kitu kwenye mfuko, kisha moja kwa moja kwenye usemi wa kawaida tuseme, hapa inapaswa kuwa na yaliyomo ya mfuko huo.
Yaliyomo kwenye mifuko inapatikana kwa nambari zao,
ambazo zina alama ya nyuma mbele yao. Kwa mfano,
mfuko wa sifuri utapatikana hivi: \0,
mfuko wa kwanza hivi - \1, wa pili
- \2 na kadhalika.
Nina hakika kuwa yote yaliyoandikwa hapo juu bado yana utata kwako. Hii si ajabu, kwa sababu mifuko - ni sehemu inayoeleweka sana ya semi za kawaida. Wacha tuelewe kwa kutumia mifano.
Mfano
Wacha tuwe na mfuatano kama huu:
<?php
$str = 'aa bb cd ef';
?>
Wacha tupate sehemu zake zote, ambazo zina herufi mbili sawa zinazofuatana. Ili kutatua tatizo tutatafuta herufi yoyote, kuweka kwenye mfuko, kisha kuangalia, ikiwa herufi inayofuata ni yaliyomo ya mfuko huo:
<?php
$res = preg_replace('#([a-z])\1#', '!', $str);
?>
Matokeo yake, kwenye kutofautisha kitaandikwa yafuatayo:
'! ! cd ef'
Mfano
Wacha tuwe na mfuatano kama huu:
<?php
$str = 'asxca buzxb csgd';
?>
Wacha tupate maneno yake yote, ambayo herufi ya kwanza na ya mwisho ni sawa. Ili kutatua tatizo tutaandika muundo ufuatao: herufi, kisha herufi nyingine moja au zaidi, kisha herufi sawa na ya kwanza:
<?php
$res = preg_replace('#([a-z])[a-z]+\1#', '!', $str);
?>
Matokeo yake, kwenye kutofautisha kitaandikwa yafuatayo:
'! ! csgd'
Mfano
Badala ya \1 unaweza kuandika \g1:
<?php
$res = preg_replace('#([a-z])[a-z]+\g1#', '!', $str);
?>
Mfano
Unaweza pia kuandika \g{1}:
<?php
$res = preg_replace('#([a-z])[a-z]+\g{1}#', '!', $str);
?>
Mfano
Kwenye mabano ya kunyoosha unaweza kuonyesha nambari hasi. Katika kesi hii, mifuko itahesabiwa kutoka mwisho:
<?php
$res = preg_replace('#([a-z])([a-z])\g{-2}#', '!', $str);
?>
Kazi za Vitendo
Umepewa mfuatano:
<?php
$str = 'aaa bbb ccc xyz';
?>
Tafuta sehemu ndogo zote, ambazo kuna herufi tatu sawa zinazofuatana.
Umepewa mfuatano:
<?php
$str = 'a aa aaa abab bbbb';
?>
Tafuta sehemu ndogo zote, ambazo kuna herufi mbili au zaidi sawa zinazofuatana.
Umepewa mfuatano:
<?php
$str = 'aaa aaa bbb bbb ccc ddd';
?>
Tafuta sehemu ndogo zote, ambazo kuna maneno mawili sawa yanayofuatana.