Символът каретка вътре в множества в регулярни изрази в PHP
Както знаете, каретката вътре в [] прави
отрицание, когато е написана в началото на скобите.
Следователно, тя е специален символ вътре в
тези скоби. За да получите каретката като символ,
трябва или да я екранирате, или да я преместите от
първото място.
Пример
В следващия пример шаблонът за търсене е:
първият символ е всичко освен 'd',
следвани от две букви 'x'.
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[^d]xx#', '!', $str);
?>
В резултат в променливата ще бъде записано следното:
'! ! ! dxx'
Пример
А сега шаблонът за търсене е: първият символ
е 'd' или '^', следвани от две
букви 'x':
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[d^]xx#', '!', $str);
?>
В резултат в променливата ще бъде записано следното:
'axx bxx ! !'
Пример
Можете да не премествате каретката от първото място, а просто да я екранирате с помощта на обратна наклонена черта, и тя ще означава самата себе си:
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[\^d]xx#', '!', $str);
?>
В резултат в променливата ще бъде записано следното:
'axx bxx ! !'
Практически задачи
Даден е низ:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Напишете регулярен израз, който ще намери низовете по шаблон: каретка или знак @, а след това две латински букви.
Даден е низ:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Напишете регулярен израз, който ще намери низовете по шаблон: НЕ каретка и не знак @, а след това две латински букви.
Даден е низ:
<?php
$str = '^xx axx ^zz bkk';
?>
Напишете регулярен израз, който ще намери низовете по шаблон: НЕ каретка, а след това две латински букви.