PHPの正規表現におけるグループ化括弧
前の例では、繰り返し演算子は 直前の1つの文字にのみ作用していました。 複数の文字に作用させたい場合は どうすればよいでしょうか?
このためにグループ化括弧
'(' と ')' が存在します。
その働きは次のとおりです:
何かがグループ化括弧の中にあり、
')' の直後に繰り返し演算子が
ある場合、その演算子は括弧内のすべての
内容に作用します。
次の例では、検索パターンは次のようになります:
文字 'x'、その後に文字列 'ab'
が1回以上、そして文字 'x':
<?php
$str = 'xabx xababx xaabbx';
$res = preg_replace('#x(ab)+x#', '!', $str);
?>
結果、変数には次の内容が書き込まれます:
'! ! xaabbx'
次の文字列が与えられています:
<?php
$str = 'ab abab abab abababab abea';
?>
次のパターンに一致する文字列を見つける
正規表現を書いてください:
文字列 'ab' が
1 回以上繰り返される。