Vikundi vya Herufi katika Usemi wa Kawaida (Regular Expressions) PHP
Kuna amua maalum ambazo huruhusu
kuchagua vikundi vya herufi vye ukamilifu mara moja. Amri
\d inamaanisha nambari kutoka 0 hadi 9.
Amri \w inaashiria nambari, herufi ya
Kilatini au alama ya under_score. Amri \s
inaashiria nafasi (space) au herufi ya nafasi:
nafasi (space), mstari mpya (newline), tab. Inawezekana
kubadilisha thamani ya amri kinyume, kwa kuandika herufi kubwa
(kapitali): kwa mfano, ikiwa \d - nambari,
basi \D - sio nambari.
Mfano
Wacha tupate nambari zote:
<?php
$str = '1 12 123';
$res = preg_replace('#\d#', '!', $str);
?>
Matokeo yake, kwenye variable itaandikwa yafuatayo:
'! !! !!!'
Mfano
Opereta za kurudia huzingatia amua-za-vikundi
kama kitu kimoja, yaani mabano ya kukusanya (grouping)
hayahitajiki. Katika mfano ufuatao muundo wa utafutaji
unaonekana hivi: nambari kutoka 0 hadi 9
mara moja au zaidi:
<?php
$str = '1 12 123 abc @@@';
$res = preg_replace('#\d+#', '!', $str);
?>
Matokeo yake, kwenye variable itaandikwa yafuatayo:
'! ! ! abc @@@'
Mfano
Katika mfano ufuatao muundo wa utafutaji unaonekana
hivi: kitu chochote mara moja au zaidi,
lakini sio nambari kutoka 0 hadi 9:
<?php
$str = '123abc3@@';
$res = preg_replace('#\D+#', '!', $str);
?>
Matokeo yake, kwenye variable itaandikwa yafuatayo:
'123!3!'
Mfano
Katika mfano huu muundo wa utafutaji unaonekana hivi: herufi ya nafasi (space character) mara moja:
<?php
$str = '1 12 123 abc @@@';
$res = preg_replace('#\s#', '!', $str);
?>
Matokeo yake, kwenye variable itaandikwa yafuatayo:
'1!12!123!abc!@@@'
Mfano
Katika mfano huu muundo wa utafutaji unaonekana hivi:
Herufi isiyo ya nafasi (SIO space character) mara moja au zaidi.
Herufu ndogo zote, zilizogawanywa kwa nafasi, zitabadilishwa
kuwa '!':
<?php
$str = '1 12 123 abc @@@';
$res = preg_replace('#\S+#', '!', $str);
?>
Matokeo yake, kwenye variable itaandikwa yafuatayo:
'! ! ! ! !'
Mfano
Katika mfano huu muundo wa utafutaji unaonekana hivi:
nambari au herufi mara moja au zaidi.
Herufu ndogo zote, zinazoundwa na nambari na herufi,
zitabadilishwa kuwa '!':
<?php
$str = '1 12 123a Abc @@@';
$res = preg_replace('#\w+#', '!', $str);
?>
Matokeo yake, kwenye variable itaandikwa yafuatayo:
'! ! ! ! @@@'
Mfano
Katika mfano huu muundo wa utafutaji unaonekana hivi:
SIO nambari na SIO herufi mara moja au zaidi.
Kufafanuliwa huku kwa upande wetu kunashikilia
'@@@' na nafasi zote (hizo pia zikiwa
sio nambari wala herufi). Zingatia
kwamba mwisho kuna '!' moja - ndani yake
imebadilishwa herufu ndogo ' @@@' - yenye
nafasi mbele:
$str = '1 12 123 Abc @@@';
$res = preg_replace('#\W+#', '!', $str);
Matokeo yake, kwenye variable itaandikwa yafuatayo:
'1!12!123!Abc!'
Kazi za Vitendo
Imetolewa herufu ndogo (string):
<?php
$str = 'a1a a2a a3a a4a a5a aba aca';
?>
Andika usanifu (regex), ambayo utapata herufu ndogo,
ambazo pembeni zina herufi 'a',
na kati yao kuna nambari moja.
Imetolewa herufu ndogo (string):
<?php
$str = 'a1a a22a a333a a4444a a55555a aba aca';
?>
Andika usanifu (regex), ambayo utapata herufu ndogo,
ambazo pembeni zina herufi 'a',
na kati yao kuna idadi yoyote ya nambari.
Imetolewa herufu ndogo (string):
<?php
$str = 'aa a1a a22a a333a a4444a a55555a aba aca';
?>
Andika usanifu (regex), ambayo utapata herufu ndogo,
ambazo pembeni zina herufi 'a',
na kati yao kuna idadi yoyote ya nambari (pia
na nambari zero, yaani herufu ndogo 'aa').
Imetolewa herufu ndogo (string):
<?php
$str = 'avb a1b a2b a3b a4b a5b abb acb';
?>
Andika usanifu (regex), ambayo utapata herufu ndogo
za aina ifuatayo: pembeni zina herufi
'a' na 'b', na kati yao - sio
nambari.
Imetolewa herufu ndogo (string):
<?php
$str = 'ave a#b a2b a$b a4b a5b a-b acb';
?>
Andika usanifu (regex), ambayo utapata herufu ndogo
za aina ifuatayo: pembeni zina herufi
'a' na 'b', na kati yao - sio
herufi wala nambari.
Imetolewa herufu ndogo (string):
<?php
$str = 'ave a#a a2a a$a a4a a5a a-a aca';
?>
Andika usanifu (regex), ambayo utabadilisha nafasi zote
kuwa '!'.