PHPの角括弧内文字グループ

文字グループ \d, \D, \w, \W, \s, \S を [] 内で使用すると、 それらは依然としてグループ、つまりコマンドとして機能します。

例

この例では、検索パターンは次のようになります: xとxの間は、任意の数字、または 'a' から 'f' までの文字:

php<?php
  $str = 'xax xbx x1x x2x xhx x@x';
  $res = preg_replace('#x[\da-f]x#', '!', $str);
?>

結果、変数には次の文字列が格納されます:

php'! ! ! ! xhx x@x'

例

この例では、検索パターンは次のようになります: 文字 'x'、次に数字でもピリオドでもなく、 小文字のラテン文字でもない文字、そして文字 'z':

php<?php
  $str = 'xaz x1z xAz x.z x@z';
  $res = preg_replace('#x[^\d.a-z]z#', '!', $str);
?>

結果、変数には次の文字列が格納されます:

php'xaz x1z ! x.z !'

実践問題

Задание 1

次のパターンにマッチする文字列を見つける正規表現を書いてください: 数字またはピリオドが 1 回以上。

Задание 2

次のパターンにマッチする文字列を見つける正規表現を書いてください: 数字ではなく、 'a' から 'g' までの文字でもなく、 それが 3 回から 7 回。