Аломати cap кулоҳ дар даруни маҷмӯаҳо дар Regular Expression-ҳои PHP

Чинон ки шумо медонед, аломати cap кулоҳ дар даруни [] инкорро ифода мекунад, агар дар аввали қавсҳо навишта шавад. Пас, он дар даруни ин қавсҳо аломати махсус аст. Барои ба даст овардани аломати cap кулоҳ ҳамчун аломат, зарур аст ки ё онро экран кард (экранировал кард) ё аз ҷои аввал ҷойгир накард.

Мисол

Дар мисоли зер шакли ҷустуҷӯ ин аст: аломати аввал - ҳар чизе ҷуз 'd', пас ду ҳарфи 'x'.

php<?php
  $str = 'axx bxx ^xx dxx';
  $res = preg_replace('#[^d]xx#', '!', $str);
?>

Дар натиҷа ба тағирёбандаи зерин сабт мешавад:

php'! ! ! dxx'

Мисол

Ва акнун шакли ҷустуҷӯ ин аст: аломати аввал - ин 'd' ё '^', пас ду ҳарфи 'x':

php<?php
  $str = 'axx bxx ^xx dxx';
  $res = preg_replace('#[d^]xx#', '!', $str);
?>

Дар натиҷа ба тағирёбандаи зерин сабт мешавад:

php'axx bxx ! !'

Мисол

Ҳофиза кардани cap кулоҳ аз ҷои аввал зарур нест, танҳо бо истифода аз аломати каҷ (backslash) онро экран кунед (экранировал кунед), ва он худро ифода хоҳад кард:

php<?php
  $str = 'axx bxx ^xx dxx';
  $res = preg_replace('#[\^d]xx#', '!', $str);
?>

Дар натиҷа ба тағирёбандаи зерин сабт мешавад:

php'axx bxx ! !'

Масъалаҳои амалӣ

Задание 1

Сатр дода шудааст:

php<?php
  $str = '^xx axx ^zz bkk @ss';
?>

Regular Expression-ро нависед, ки сатрҳоро мувофиқи шакл пайдо мекунад: аломати cap кулоҳ ё аломати саг, пас ду ҳарфи лотинӣ.

Задание 2

Сатр дода шудааст:

php<?php
  $str = '^xx axx ^zz bkk @ss';
?>

Regular Expression-ро нависед, ки сатрҳоро мувофиқи шакл пайдо мекунад: НЕ аломати cap кулоҳ ва не аломати саг, пас ду ҳарфи лотинӣ.

Задание 3

Сатр дода шудааст:

php<?php
  $str = '^xx axx ^zz bkk';
?>

Regular Expression-ро нависед, ки сатрҳоро мувофиқи шакл пайдо мекунад: НЕ аломати cap кулоҳ, пас ду ҳарфи лотинӣ.