PHP regulýar ifadelerinde nyşan toparlary

Birwagtda tutuş nyşan toparlaryny saýlamaga mümkinçilik berýän ýörite buýruklar bar. Buýruk \d 0-dan 9-a çenli san manysyny aňladýar. \w buýrugy san, latyn harpyny ýa-da aşaky synyryş nyşanyny aňladýar. \s buýrugy bosluk ýa-da bosluk nyşanyny aňladýar: bosluk, setir göçürmek, tabelýasiýa. Buýrugyň manysyny uly harp bilen ýazmak bilen tersine öwürmek bolýar: mysal üçin, \d san bolsa, \D - san däldir.

Mysal

Ähli sanlary tapalyň:

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

Netijede üýtgeýjä şu ýazylar:

php'! !! !!!'

Mysal

Gaýtalamak operatorlary topar-buýruklary bir tutuşlyk hasaplaýarlar, ýagny toparlaýjy ýaýlary gerek däldir. Indiki mysalda gözleg şablon şeýle görünýär: 0-dan 9-a çenli san bir gezek ýa-da has köp gezek:

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

Netijede üýtgeýjä şu ýazylar:

php'! ! ! abc @@@'

Mysal

Indiki mysalda gözleg şablon şeýle görünýär: islenen zat bir gezek ýa-da has köp gezek, ýöne 0-dan 9-a çenli san däl:

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

Netijede üýtgeýjä şu ýazylar:

php'123!3!'

Mysal

Bu mysalda gözleg şablon şeýle görünýär: bosluk nyşany bir gezek:

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

Netijede üýtgeýjä şu ýazylar:

php'1!12!123!abc!@@@'

Mysal

Bu mysalda gözleg şablon şeýle görünýär: bosluk nyşany DÄL bir gezek ýa-da has köp gezek. Bosluklar bilen bölünen ähli aşaky setirler üýtgediler '!':

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

Netijede üýtgeýjä şu ýazylar:

php'! ! ! ! !'

Mysal

Bu mysalda gözleg şablon şeýle görünýär: san ýa-da harp bir gezek ýa-da has köp gezek. Sanlardan we harplardan duran ähli aşaky setirler, üýtgediler '!':

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

Netijede üýtgeýjä şu ýazylar:

php'! ! ! ! @@@'

Mysal

Bu mysalda gözleg şablon şeýle görünýär: san DÄL we harp DÄL bir gezek ýa-da has köp gezek. Bu kesgitçiligiň üçin biziň ýagdaýymyzda gabat gelýär '@@@' we ähli bosluklar (olar hem san däl we harp däl). Üns beriň soňky bir '!' - onuň içine üýtgedilen setir ' @@@' - öňki bosluk bilen:

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

Netijede üýtgeýjä şu ýazylar:

php'1!12!123!Abc!'

Amaly wezifeler

Задание 1

Setir berlen:

php<?php
  $str = 'a1a a2a a3a a4a a5a aba aca';
?>

Regular ýazyň, ol setirleri tapsyn, olanlarda gyralarynda 'a' harplary durýar, we olaryň arasynda bir san.

Задание 2

Setir berlen:

php<?php
  $str = 'a1a a22a a333a a4444a a55555a aba aca';
?>

Regular ýazyň, ol setirleri tapsyn, olanlarda gyralarynda 'a' harplary durýar, we olaryň arasynda islenen mukdarda san.

Задание 3

Setir berlen:

php<?php
  $str = 'aa a1a a22a a333a a4444a a55555a aba aca';
?>

Regular ýazyň, ol setirleri tapsyn, olanlarda gyralarynda 'a' harplary durýar, we olaryň arasynda islenen mukdarda san (şol sanda nol san, ýagny setir 'aa').

Задание 4

Setir berlen:

php<?php
  $str = 'avb a1b a2b a3b a4b a5b abb acb';
?>

Şeýle setirleri tapan regular ýazyň: gyralarynda harplar durýar 'a' we 'b', we olaryň arasynda - san däl.

Задание 5

Setir berlen:

php<?php
  $str = 'ave a#b a2b a$b a4b a5b a-b acb';
?>

Şeýle setirleri tapan regular ýazyň: gyralarynda harplar durýar 'a' we 'b', we olaryň arasynda - harp däl we san däl.

Задание 6

Setir berlen:

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

Ähli bosluklary üýtgedýän regular ýazyň '!'.