グループ化構成体

PHP用語集

カテゴリー: 正規表現  閲覧数:674 配信日:2018-07-26 10:20


サブパターン


- 内容 読み方 備考
( ) グループ化。括弧を使うと、グループにできる 丸括弧 -
\1 \2 ... \n 後方参照。n 番目の括弧(正規 表現 ( ) グルーピング)にマッチした文字列にマッチ - -
(?: ) 後方参照を伴わないグループ化。つまり、\1, \2 (あるいは、 $1, $2)などの対象にはならず、 単純なグループ化の用途で使用 - -

具体例


1回以上のab、かつ行頭ab、かつ行末ab
print_r(preg_match("#^(ab)+$#i", "ababab")); //1回マッチ。最初にマッチした時点でpreg_match()は検索を止めるため
print_r(preg_match("#^(ab)+$#i", "ababa")); //0マッチ


後方参照


後方参照とは?
・正規表現中のある位置にマッチした文字列を、後から使い回すこと
・後方参照を行うには、後から参照したい部分パターンを予めグループ化しておく
・すると、グループ化した(括弧で括った)正規表現にマッチした部分文字列は、正規表現内でキャッシュされる
・使う時にそのグループの出現位置を指定することでそこにマッチした文字列を参照
・つまり、括弧で括ったグループは、後で使いまわせる
・具体的には、\g1とか\g2とかに割り当てられていて、正規表現中で利用可能
※gには特別な意味がある。省略は可能だが、 違うアルファベットでは意味を成さない
\g1、\g2は、O.K.
\k1、\k2は、NG

非格納グループ(非キャプチャグループ)


非格納グループとは?
・通常、グループ化すると後方参照用にキャッシュされるが、 「(?:)」を利用すると、割り当てから外れ、キャッシュされなくなる(その結果、参照されなくなる)こと
・グループはないものとして扱われる


正規表現

週間人気ページランキング / 8-6 → 8-12
順位 ページタイトル抜粋 アクセス数
1 定数 4
1 Parse error: syntax error, unexpected 'public' (T_PUBLIC) | Parse error(エラーメッセージ) 4
2 PHP用語 3
2 「POSIX正規表現」と「PCRE正規表現」の違い 3
2 結合時の評価と優先順位 | 演算子 3
2 PHPで定数を定義する方法は2種類ある / 配列定数の定義 3
2 ブラウザを閉じたらセッションデータはどうなるの? | セッション 3
3 セッション管理が必要な理由は、HTTPプロトコルには状態を保持する機能がないため | セッション 2
3 コード例 … 「例外処理」はネストすることができる 2
3 ブラウザを閉じたらセッションデータはどうなるの? | セッション 2
3 Fatal error: Uncaught Error: Call to a member function modify() on string | Fatal error(エラーメッセージ) 2
3 Fatal error: require_once(): Failed opening required 'PEAR.php' | Fatal error(エラーメッセージ) 2
3 curl で Cookie を使用する 2
3 ( ! ) Warning: Declaration of xxxx should be compatible with | エラーメッセージ 2
3 http_build_query | URLs(関数) 2
3 and | 演算子 2
3 Cookie | クッキー 2
4 Warning: PDO::query(): LOAD DATA LOCAL INFILE forbidden | Warning(エラーメッセージ) 1
4 You currently have Essential access which includes access to Twitter API v2 endpoints only. If you need access to this endpoint, you’ll need to apply for Elevated access via the Developer Portal. | Twitter API(エラーメッセージ) 1
4 ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined | Fatal error(エラーメッセージ) 1
2025/8/13 1:01 更新
指定期間人気ページランキング / 2020-5-28 → 2025-8-12
順位 ページタイトル抜粋 アクセス数
1 PHP用語 6696
2 ブラウザを閉じたらセッションデータはどうなるの? | セッション 2506
3 Parse error: syntax error, unexpected 'public' (T_PUBLIC) | Parse error(エラーメッセージ) 2452
4 ブラウザを閉じたらセッションデータはどうなるの? | セッション 1669
5 【テスト投稿】テスト | 1133
6 セッション管理が必要な理由は、HTTPプロトコルには状態を保持する機能がないため | セッション 1060
7 PHPで定数を定義する方法は2種類ある / 配列定数の定義 989
8 Fatal error: Access level to ▲::$△ must be protected (as in class ●) or weaker | Fatal error(エラーメッセージ) 884
9 Fatal error: Uncaught Error: Call to a member function modify() on string | Fatal error(エラーメッセージ) 845
10 コード例 … 「例外処理」はネストすることができる 839
11 curl で Cookie を使用する 836
12 Fatal error: require_once(): Failed opening required 'PEAR.php' | Fatal error(エラーメッセージ) 833
13 Fatal error: Uncaught RuntimeException: SplFileObject::__construct(): failed to open stream: Permission denied in | Fatal error(エラーメッセージ) 730
14 定数 723
15 インターフェイス | クラスとオブジェクト 694
16 Fatal error: Uncaught HeadlessChromium\Exception\OperationTimedOut: Operation timed out (3sec) in | Fatal error(エラーメッセージ) 683
17 メンバー | クラスとオブジェクト 645
18 Warning: include() [function.include]: Failed opening '**.php' for inclusion (in | Warning(エラーメッセージ) 631
19 ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column | Fatal error(エラーメッセージ) 600
20 Warning: strlen() expects parameter 1 to be string, array given in ○○.php on line △△ | Warning(エラーメッセージ) 580
2025/8/13 1:01 更新