Karakterstelle in PHP se regulêre uitdrukkings

Karaktergroepe \d en \w is nie baie buigsaam nie. Selfs 'n eenvoudige taak soos vind alle letters, maar nie syfers nie - kan nie deur hulle opgelos word nie. Vir sulke take moet vierkantige hakies gebruik word, wat 'n OF-bewerking verteenwoordig.

Vierkantige hakies vervang een karakter, enige van die wat binne gelys is. Byvoorbeeld, so: #x[abc]x# - sê ons dat aan die kante x-letters moet wees, en binne - een karakter: óf 'a', óf 'b', óf 'c'.

Na vierkantige hakies kan herhalingsoperators geskryf word. Byvoorbeeld, so: #x[abc]+x# - sê ons dat binne die x's enige aantal karakters 'a', 'b' en 'c' kan wees - in enige kombinasies.

Jy kan nie net karakters lys nie, maar ook karaktergroepe skep deur 'n koppelteken tussen twee karakters te skryf. Byvoorbeeld, so: #[a-d]# - kry ons alle karakters van 'a' tot 'd'.

Kom ons kyk na voorbeelde.

Voorbeeld

In hierdie voorbeeld lyk die soekpatroon so: tussen x's enige letter van 'a' tot 'z':

php<?php
  $str = 'xax xbx xcx x@x';
  $res = preg_replace('#x[a-z]x#', '!', $str);
?>

As gevolg sal die volgende in die veranderlike geskryf word:

php'! ! ! x@x'

Voorbeeld

In hierdie voorbeeld lyk die soekpatroon so: tussen x's enige letter van 'a' tot 'k':

php<?php
  $str = 'xax xbx xmx x@x';
  $res = preg_replace('#x[a-k]x#', '!', $str);
?>

As gevolg sal die volgende in die veranderlike geskryf word:

php'! ! xmx x@x'

Voorbeeld

In hierdie voorbeeld lyk die soekpatroon so: tussen x's enige letter van 'A' tot 'Z':

php<?php
  $str = 'xax xBx xcx x@x';
  $res = preg_replace('#x[A-Z]x#', '!', $str);
?>

As gevolg sal die volgende in die veranderlike geskryf word:

php'xax ! xcx x@x'

Voorbeeld

In hierdie voorbeeld lyk die soekpatroon so: tussen x's enige syfer van 0 tot 9:

php<?php
  $str = 'xax x1x x3x x5x x@x';
  $res = preg_replace('#x[0-9]x#', '!', $str);
?>

As gevolg sal die volgende in die veranderlike geskryf word:

php'xax ! ! ! x@x'

Voorbeeld

In hierdie voorbeeld lyk die soekpatroon so: tussen x's enige syfer van 3 tot 7:

php<?php
  $str = 'xax x1x x3x x5x x@x';
  $res = preg_replace('#x[3-7]x#', '!', $str);
?>

As gevolg sal die volgende in die veranderlike geskryf word:

php'xax x1x ! ! x@x'

Voorbeeld

In hierdie voorbeeld lyk die soekpatroon so: tussen x's enige letter van 'a' tot 'z' of syfer van 1 tot 9:

php<?php
  $str = 'xax x1x x3x x5x x@x';
  $res = preg_replace('#x[a-z1-9]x#', '!', $str);
?>

As gevolg sal die volgende in die veranderlike geskryf word:

php'! ! ! ! x@x'

Voorbeeld

In hierdie voorbeeld lyk die soekpatroon so: tussen x's enige letter van 'a' tot 'z' of letter van 'A' tot 'Z':

php<?php
  $str = 'xax xBx xcx x5x x@x';
  $res = preg_replace('#x[a-zA-Z]x#', '!', $str);
?>

As gevolg sal die volgende in die veranderlike geskryf word:

php'! ! ! x5x x@x'

Voorbeeld

In hierdie voorbeeld lyk die soekpatroon so: tussen x's enige letter van 'a' tot 'z' of syfers 1, 2:

php<?php
  $str = 'xax xbx x1x x2x x3x';
  $res = preg_replace('#x[a-z12]x#', '!', $str);
?>

As gevolg sal die volgende in die veranderlike geskryf word:

php'! ! ! ! x3x'

Voorbeeld

In hierdie voorbeeld lyk die soekpatroon so: tussen x's letters van 'a' tot 'z' in hoeveelheid van 1 en meer:

php<?php
  $str = 'xx xabesx xaadx x123x xa3x';
  $res = preg_replace('#x[a-z]+x#', '!', $str);
?>

As gevolg sal die volgende in die veranderlike geskryf word:

php'xx ! ! ! x123x xa3x'

Voorbeeld

Laat ons dit so maak dat die hoeveelheid letters ook nul kan wees:

php<?php
  $str = 'xx xabesx xaadx x123x xa3x';
  $res = preg_replace('#x[a-z]*x#', '!', $str);
?>

As gevolg sal die volgende in die veranderlike geskryf word:

php'! ! ! x123x xa3x'

Praktiese take

Задание 1

Gegewe 'n string:

php<?php
  $str = 'aba aea aca aza axa';
?>

Skryf 'n regulêre uitdrukking wat volgens die volgende patroon sal vind: aan die kante is daar letters 'a', en tussen hulle - letter 'b', 'e' of 'x'.

Задание 2

Gegewe 'n string:

php<?php
  $str = 'a1a a3a a7a a9a aba';
?>

Skryf 'n regulêre uitdrukking wat volgens die volgende patroon sal vind: aan die kante is daar letters 'a', en tussen hulle - syfer van 3-de tot 6-de.

Задание 3

Gegewe 'n string:

php<?php
  $str = 'aba aea afa aha aga';
?>

Skryf 'n regulêre uitdrukking wat volgens die volgende patroon sal vind: aan die kante is daar letters 'a', en tussen hulle - letter van a tot g.

Задание 4

Gegewe 'n string:

php<?php
  $str = 'aba aea afa aha aga';
?>

Skryf 'n regulêre uitdrukking wat volgens die volgende patroon sal vind: aan die kante is daar letters 'a', en tussen hulle - letter van a tot f en van j tot z.

Задание 5

Gegewe 'n string:

php<?php
  $str = 'aAa aea aEa aJa a3a';
?>

Skryf 'n regulêre uitdrukking wat volgens die volgende patroon sal vind: aan die kante is daar letters 'a', en tussen hulle - letter van a tot f en van A tot D.

Задание 6

Gegewe 'n string:

php<?php
  $str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>

Skryf 'n regulêre uitdrukking wat volgens die volgende patroon sal vind: aan die kante is daar letters 'a', en tussen hulle - klein Latynse letters, sonder om die ander te raak.

Задание 7

Gegewe 'n string:

php<?php
  $str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>

Skryf 'n regulêre uitdrukking wat volgens die volgende patroon sal vind: aan die kante is daar letters 'a', en tussen hulle - klein en groot Latynse letters, sonder om die ander te raak.

Задание 8

Gegewe 'n string:

php<?php
  $str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>

Skryf 'n regulêre uitdrukking wat volgens die volgende patroon sal vind: aan die kante is daar letters 'a', en tussen hulle - klein Latynse letters en syfers, sonder om die ander te raak.