Perl互換とは? わかりやすく解説

Weblio 辞書 > コンピュータ > PHP関数リファレンス > Perl互換の意味・解説 

正規表現関数(Perl 互換)

導入

この正規表現関数で使用するパターンの構文は、Perl と類似しています。 正規表現は、スラッシュ (/) などのデリミタで囲う必要があります。 デリミタとしては、英数字およびバックスラッシュ(\) 以外のすべての文字を使用可能です。 デリミタ文字を正規表現本体において使用する必要がある場合は、 バックスラッシュでエスケープします。PHP 4.0.4 以降、 Perl形式の (), {}, [], <> も使用可能です。 パターンの詳細については、パターン構文 を参照してください。
様々な修飾子を終端デリミタの後に付け、 マッチングに変化を与えることができます。 パターン修飾子 を参照ください。
PHP は、POSIX 拡張正規表現関数 において、 POSIX 拡張構文を用いた正規表現もサポートしています。
注意: この拡張モジュールでは、コンパイルした正規表現のために スレッド単位のグローバルキャッシュ (最大 4096) を管理しています。

警告
PCRE には、いくつかの制限があります。詳細は、» http://www.pcre.org/pcre.txt を参照してください。

要件

外部ライブラリを必要としません。

インストール手順

PHP 4.2.0 以降、本関数はデフォルトで有効となっています。 --without-pcre-regex で PCRE 関数を 無効にすることができます。 付属のライブラリを使用しない場合、 --with-pcre-regex=DIR を使用して PCRE のインクルードおよびライブラリファイルがある場所 DIR を指定してください。 以前のバージョンでは、本関数を使用するためには --with-pcre-regex[=DIR] を指定して PHP を configure およびコンパイルする必要があります。
Windows 版の PHP には この拡張モジュールのサポートが組み込まれています。これらの関数を使用 するために拡張モジュールを追加でロードする必要はありません。

実行時設定

php.ini の設定により動作が変化します。
表 234. PCRE 設定オプション
名前デフォルト変更の可否変更履歴
pcre.backtrack_limit100000PHP_INI_ALLPHP 5.2.0 以降で使用可能
pcre.recursion_limit100000PHP_INI_ALLPHP 5.2.0 以降で使用可能

PHP_INI_* 定数の詳細および定義については 付録 G. php.ini ディレクティブ を参照してください。
以下に設定ディレクティブに関する 簡単な説明を示します。
pcre.backtrack_limit integer
PCRE のバックトラック処理の制限値です。
pcre.recursion_limit integer
PCRE の再帰処理の制限値です。この値を大きくすると、 使用可能なプロセススタックを使い切ってしまい、 (OS のスタックサイズの制限値に達して) PHP をクラッシュさせてしまうことに注意しましょう。

リソース型

リソース型は定義されていません。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
表 235. PREG 定数
定数説明
PREG_PATTERN_ORDER $matches[0] はパターン全体にマッチした文字列の配列、 $matches[1] は第 1 のキャプチャ用サブパターンにマッチした文字列の配列、 といったように結果の順序を指定します。 このフラグは、preg_match_all() でのみ使用されます。
PREG_SET_ORDER $matches[0] は 1 回目のマッチングでキャプチャした値の配列、 $matches[1] は 2 回目のマッチングでキャプチャした値の配列、 といったように結果の順序を指定します。 このフラグは、preg_match_all() でのみ使用されます。
PREG_OFFSET_CAPTURE PREG_SPLIT_OFFSET_CAPTURE の説明を参照してください。 このフラグは、PHP 4.3.0 以降で利用可能です。
PREG_SPLIT_NO_EMPTY このフラグは、preg_split() が、空文字列でないものだけ を返すようにします。
PREG_SPLIT_DELIM_CAPTURE このフラグは、preg_split() が 文字列分割用のパターン中のカッコによるサブパターンでキャプチャされた値も 同時に返すようにします。 このフラグは、PHP 4.0.5 以降で利用可能です。
PREG_SPLIT_OFFSET_CAPTURE このフラグを設定した場合、各マッチに対応する文字列のオフセットも返されます。 これにより、返り値は配列となり、配列の要素 0 はマッチした文字列、 要素 1 は対象文字列中におけるマッチした文字列のオフセット値となることに注意してください。 このフラグは、PHP 4.3.0 以降で利用可能で、 preg_split() のみで使用されます。
PREG_NO_ERROR エラーが存在しなかった場合に preg_last_error() から返されます。 PHP 5.2.0 以降で使用可能です。
PREG_INTERNAL_ERROR PCRE 内部エラーが発生した場合に preg_last_error() から返されます。 PHP 5.2.0 以降で使用可能です。
PREG_BACKTRACK_LIMIT_ERROR backtrack limit に達した場合に preg_last_error() から返されます。 PHP 5.2.0 以降で使用可能です。
PREG_RECURSION_LIMIT_ERROR recursion limit に達した場合に preg_last_error() から返されます。 PHP 5.2.0 以降で使用可能です。
PREG_BAD_UTF8_ERROR 壊れている UTF8 データによって直近のエラーが発生した場合に preg_last_error() から返されます (UTF-8 モード で正規表現を実行した場合のみ)。 PHP 5.2.0 以降で使用可能です。

例 1608. 有効なパターンの例
  • /<\/\w+>/
  • |(\d{3})-\d+|Sm
  • /^(?i)php[34]/
  • {^\s+(\s+)?$}


例 1609. 無効なパターンの例
  • /href='(.*)' - 終端デリミタが抜けている
  • /\w+\s*\w+/J - 未知の修飾子 'J'
  • 1-\d3-\d3-\d4| - 始端デリミタが抜けている


目次

パターン修飾子 — 正規表現パターンに使用可能な修飾子
パターン構文 — PCRE 正規表現の説明
preg_grep — パターンにマッチする配列の要素を返す
preg_last_error — 直近の PCRE 正規表現処理のエラーコードを返す
preg_match_all — 繰返し正規表現検索を行う
preg_match — 正規表現によるマッチングを行う
preg_quote — 正規表現文字をクオートする
preg_replace_callback — 正規表現検索を行い、コールバック関数を使用して置換を行う
preg_replace — 正規表現検索および置換を行う
preg_split — 正規表現で文字列を分割する

「Perl 互換」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Perl互換」の関連用語

Perl互換のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Perl互換のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2025 by the PHP Documentation Group.
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS