1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
/* ------------------------------------------------
 *     正規表現:サブパターンの例
 *
 *  作成: 2015.07.23 yoshi of CXMedia Inc.
 * ------------------------------------------------ */
header("Content-type:text/plain; charset=UTF-8");

//対象文字列
$str1 'sunday saturday';
$str2 'sunday';

//サブパターン
//値のキャプチャをしないサブパターンの先頭でオプションの設定をする場合、
//オプションの文字を "?" と ":" の間に入れることができます。(簡略形)
$sub_ptn1 '(?i:saturday|sunday)';
$sub_ptn2 '(?:(?i)saturday|sunday)';

//Sun が後方参照2 に格納され、 後方参照1 は空となります。
//Sat にマッチした場合は後方参照 1 に入り、後方参照 2 は存在しません。
$sub_ptn3 '(?:(Sat)ur|(Sun))day';

//Sun と Sat の両方が後方参照1 に格納されます。
$sub_ptn4 '(?|(Sat)ur|(Sun))day'

//サブパターン関数の実行
preg_match_all("/".$sub_ptn1."/i",$str1,$match1);
preg_match("/".$sub_ptn2."/i",$str1,$match2);
preg_match("/".$sub_ptn3."/i",$str2,$match3);
preg_match("/".$sub_ptn4."/i",$str2,$match4);

//表示
echo "サブパターン関数の実行\n";
print_r($match1);
print_r($match2);
print_r($match3);
print_r($match4);
?>