Istari ndani ya seti katika usanifu mara kwa mara wa PHP
Istari - pia ni ishara maalum ndani ya []
(lakini nje - sio). Ikiwa unahitaji istari yenyewe kama ishara
- basi weka mahali ambapo haitachukuliwa kama kitenganishi
cha kikundi.
Kwa nini hii ni muhimu: unaweza kutengeneza kikundi
cha wahusika, bila kugundua mwenyewe. Kwa mfano,
hivi - [:-@] - unafikiri kuwa
unachagua koloni, istari na alama ya @, lakini
kwa kweli inageuka kuwa kikundi cha wahusika kati ya
: na @. Kikundi hiki kinajumuisha
wahusika wafuatao: :, ;, ?,
<, =, >.
Walitoka wapi? Kutoka kwa jedwali la ASCII - koloni ina nambari ndogo kuliko alama ya @ - na kwa hivyo inageuka kuwa kikundi. Yaani makundi yote hupatikana kulingana na jedwali la ASCII (kwa hiari hii inaweza kutumika).
Jinsi ya kukabiliana na hili: weka ishara ya istari
mahali ambapo hakika haitachukuliwa kama
ishara ya kikundi, kwa mfano, mwanzoni au mwishoni
(yaani baada ya [ au kabla ya ]).
Pia unaweza kuepusha istari - basi
itamaanisha yenyewe bila kujali
nafasi. Kwa mfano, badala ya [:-@] andika
[:\-@] - na hakutakuwa na kikundi tena, lakini
kutakuwa na herufi tatu - koloni, istari na alama ya @.
Mfano
Katika mfano ufuatao muundo wa utafutaji ni:
nambari 1, kisha herufi kutoka 'a'
hadi 'z', kisha nambari 2:
<?php
$str = '1a2 1-2 1c2 1z2';
$res = preg_replace('#1[a-z]2#', '!', $str);
?>
Matokeo yake kwenye tofauti itaandikwa yafuatayo:
'! 1-2 ! !'
Mfano
Wacha sasi tuepushe istari. Matokeo yake
muundo wa utafutaji ni: nambari 1, kisha
herufi 'a', au istari, au herufi 'z',
kisha nambari 2:
<?php
$str = '1a2 1-2 1c2 1z2';
$res = preg_replace('#1[a\-z]2#', '!', $str);
?>
Matokeo yake kwenye tofauti itaandikwa yafuatayo:
'! ! 1c2 !'
Mfano
Inawezekana kubadilisha nafasi ya istari, bila kuepusha:
<?php
$str = '1a2 1-2 1c2 1z2';
$res = preg_replace('#1[az-]2#', '!', $str);
?>
Matokeo yake kwenye tofauti itaandikwa yafuatayo:
'! ! 1c2 !'
Mfano
Katika mfano ufuatao muundo wa utafutaji ni:
ishara ya kwanza - ni herufi ndogo au
istari '-', kisha herufi mbili 'x':
<?php
$str = 'axx Axx -xx @xx';
$res = preg_replace('#[a-z-]xx#', '!', $str);
?>
Matokeo yake kwenye tofauti itaandikwa yafuatayo:
'! Axx ! @xx'
Mfano
Katika mfano ufuatao muundo wa utafutaji ni:
ishara ya kwanza - ni herufi ndogo, herufi kubwa
au istari '-', kisha herufi mbili
'x':
<?php
$str = 'axx Axx -xx @xx';
$res = preg_replace('#[a-zA-Z-]xx#', '!', $str);
?>
Matokeo yake kwenye tofauti itaandikwa yafuatayo:
'! ! ! @xx'
Mfano
Inawezekana kuweka istari kati ya makundi mawili - hapo hakika haitafanya kikundi kingine:
<?php
$str = 'axx 9xx -xx @xx';
$res = preg_replace('#[a-z-0-9]xx#', '!', $str);
?>
Matokeo yake kwenye tofauti itaandikwa yafuatayo:
'! ! ! @xx'
Kazi za Vitendo
Kuna mfuatano:
<?php
$str = 'xaz xBz xcz x-z x@z';
?>
Tafuta mistari yote kulingana na muundo ufuatao:
herufi 'x', herufi kubwa au ndogo
au istari, herufi 'z'.
Kuna mfuatano:
<?php
$str = 'xaz x$z x-z xcz x+z x%z x*z';
?>
Tafuta mistari yote kulingana na muundo ufuatao:
herufi 'x', kisha au dola, au
istari au alama ya kujumlisha, kisha herufi 'z'.