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<?php
  $str = '1 12 123';
  $res = preg_replace('#\d#', '!', $str);
?>

Matokeo yake, kwenye variable itaandikwa yafuatayo:

php'! !! !!!'

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<?php
  $str = '1 12 123 abc @@@';
  $res = preg_replace('#\d+#', '!', $str);
?>

Matokeo yake, kwenye variable itaandikwa yafuatayo:

php'! ! ! abc @@@'

Mfano

Katika mfano ufuatao muundo wa utafutaji unaonekana hivi: kitu chochote mara moja au zaidi, lakini sio nambari kutoka 0 hadi 9:

php<?php
  $str = '123abc3@@';
  $res = preg_replace('#\D+#', '!', $str);
?>

Matokeo yake, kwenye variable itaandikwa yafuatayo:

php'123!3!'

Mfano

Katika mfano huu muundo wa utafutaji unaonekana hivi: herufi ya nafasi (space character) mara moja:

php<?php
  $str = '1 12 123 abc @@@';
  $res = preg_replace('#\s#', '!', $str);
?>

Matokeo yake, kwenye variable itaandikwa yafuatayo:

php'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<?php
  $str = '1 12 123 abc @@@';
  $res = preg_replace('#\S+#', '!', $str);
?>

Matokeo yake, kwenye variable itaandikwa yafuatayo:

php'! ! ! ! !'

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<?php
  $str = '1 12 123a Abc @@@';
  $res = preg_replace('#\w+#', '!', $str);
?>

Matokeo yake, kwenye variable itaandikwa yafuatayo:

php'! ! ! ! @@@'

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:

php$str = '1 12 123 Abc @@@';
$res = preg_replace('#\W+#', '!', $str);

Matokeo yake, kwenye variable itaandikwa yafuatayo:

php'1!12!123!Abc!'

Kazi za Vitendo

Задание 1

Imetolewa herufu ndogo (string):

php<?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.

Задание 2

Imetolewa herufu ndogo (string):

php<?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.

Задание 3

Imetolewa herufu ndogo (string):

php<?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').

Задание 4

Imetolewa herufu ndogo (string):

php<?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.

Задание 5

Imetolewa herufu ndogo (string):

php<?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.

Задание 6

Imetolewa herufu ndogo (string):

php<?php
  $str = 'ave a#a a2a a$a a4a a5a a-a aca';
?>

Andika usanifu (regex), ambayo utabadilisha nafasi zote kuwa '!'.