目次
一般的に使用される PHP 正規表現
1. 通常の文字
2 つの非印刷文字
3. 特殊文字 (メタキャラクター)
4 つの予選
5 ロケーター
6. 区切り文字
7.
9. すべての記号の説明
ホームページ バックエンド開発 PHPチュートリアル 一般的に使用される PHP 正規表現

一般的に使用される PHP 正規表現

Jun 20, 2016 pm 01:02 PM
PHPの正規表現

一般的に使用される PHP 正規表現

1. 通常の文字

は、メタキャラクターとして明示的に指定されていないすべての印刷文字と非印刷文字で構成されます。これには、すべての大文字と小文字のアルファベット (a ~ z)、すべての数字 (o ~ 9)、すべての句読点、および一部の記号が含まれます。

2 つの非印刷文字

文字の意味

cx は、x で指定された制御文字と一致します。たとえば、cM は Control-M または復帰文字と一致します。 x の値は、A ~ Z または a ~ z のいずれかでなければなりません。それ以外の場合、c はリテラルの「c」文字として扱われます。

f はフォーム フィード文字と一致します。 x0c および cL に相当します。

n は改行文字と一致します。 x0a および cJ に相当します。

r は復帰文字と一致します。 x0d および cM に相当します。

は、スペース、タブ、フォーム フィードなどを含む任意の空白文字と一致します。 【fnrtv】に相当。

S は空白以外の文字に一致します。 [^ fnrtv] に相当します。

タブ文字と一致しません。 x09 および cI に相当します。

v は垂直タブ文字と一致します。 x0b および cK に相当します。

3. 特殊文字 (メタキャラクター)

いわゆる特殊文字とは、上記の「*.txt」の * などの特別な意味を持つ文字のことで、簡単に言えば、任意の文字列の意味を意味します。ファイル名に * が含まれるファイルを検索する場合は、* をエスケープする、つまり * の前に 1 を追加する必要があります。 ls*.txt。正規表現には次の特殊文字があります。

特殊文字の説明

$ は入力文字列の末尾と一致します。 RegExp オブジェクトの Multiline プロパティが設定されている場合、$ は 'n' または 'r' にも一致します。 $ 文字そのものと一致させるには、$ を使用します。

( ) は部分式の開始と終了をマークします。部分式は後で使用するために取得できます。これらの文字と一致させるには、( と ) を使用します。

* 直前の部分式と 0 回以上一致します。 * 文字と一致させるには、* を使用します。

+ は、前の部分式に 1 回以上一致します。 + 文字と一致させるには、+ を使用します。

。改行文字 n を除く任意の 1 文字と一致します。 . と一致させるには、 を使用します。

[ は角括弧式の始まりを示します。 [ と一致させるには、[ を使用します。

? 先行する部分式と 0 回または 1 回一致するか、非貪​​欲修飾子を指定します。 ? 文字に一致させるには、? を使用します。

次の文字を特殊文字、リテラル文字、後方参照、または 8 進エスケープ文字としてマークします。たとえば、「n」は文字「n」と一致します。 「n」は改行文字に一致します。シーケンス '\' は "" に一致し、シーケンス '(' は "(" に一致します。

^ は、角括弧式で使用されない限り、入力文字列の先頭と一致します。角括弧式で使用される場合は、文字セットが受け入れられないことを示します。 ^ 文字そのものと一致させるには、^ を使用します。

{修飾子式の始まりを示します。 { と一致させるには、{ を使用します。

|2 つの項目から選択を示します。 | と一致させるには、| を使用します。

4 つの予選

修飾子は、一致を満たすために正規表現の特定のコンポーネントが何回出現する必要があるかを指定するために使用されます。 * または + または ? または {n} または {n,} または {n,m} の 6 種類があります。

*、+、および ? 修飾子はすべて、後ろに ? を追加することで可能な限り多くのリテラルと一致するという点で貪欲です。

正規表現の修飾子は次のとおりです:

キャラクターの説明

* 直前の部分式と 0 回以上一致します。たとえば、zo* は「z」と「zoo」に一致します。 * {0,} に相当します。

+ は、前の部分式に 1 回以上一致します。たとえば、「zo+」は「zo」と「zoo」には一致しますが、「z」には一致しません。 + は {1,} と同等です。

? 直前の部分式と 0 回または 1 回一致します。たとえば、「do(es)?」は「do」または「does」の「do」と一致します。 ? {0,1} に相当します。

{n}n は負ではない整数です。特定の回数 n 回一致します。たとえば、「o{2}」は「Bob」の「o」と一致できませんが、「food」の 2 つの o と一致します。

{n,}n は負ではない整数です。少なくとも n 回一致します。たとえば、「o{2,}」は「Bob」の「o」とは一致しませんが、「foooood」のすべての「o」には一致します。 「o{1,}」は「o+」と同等です。 「o{0,}」は「o*」と同等です。

{n,m}m と n は両方とも非負の整数であり、n

5 ロケーター

は文字列または単語の境界を表すために使用され、^ と $ はそれぞれ文字列の先頭と末尾を指し、b は単語の前または後ろの境界を表し、B は単語以外の境界を表します。修飾子はロケーターでは使用できません。

6. 区切り文字

文字、数字、バックスラッシュ以外の文字 (| |、//、{}、!! など) を区切り文字として使用できますが、特別な必要がない場合は、スラッシュ // は正規表現の区切り文字として機能します。

7.

を選択します。

すべての選択項目をかっこで囲み、隣接する選択項目を | で区切ります。ただし、括弧を使用すると、関連する一致がキャッシュされるという副作用が生じます。この場合、最初のオプションの前に ?: を使用すると、この副作用を排除できます。

このうち、?: は非キャプチャー要素の 1 つで、他の 2 つの非キャプチャー要素は ?= と ?! です。これら 2 つは前方参照であり、一致を開始します。正規表現パターンは、正規表現パターンに一致しない任意の位置の検索文字列に一致します。後者は、正規表現パターンに一致しない任意の最初の位置にある検索文字列に一致します。


8. 後方参照

正規表現パターンまたはパターンの一部をかっこで囲むと、関連付けられた一致が一時バッファに保存され、各部分一致が正規表現パターンの左から右に検出されるようにキャプチャされます。部分一致が格納されるバッファには、1 から始まり、最大 99 個の部分式まで連続した番号が付けられます。各バッファーには、「n」を使用してアクセスできます。n は、特定のバッファーを識別する 1 桁または 2 桁の 10 進数です。

非キャプチャメタ文字「?:」、「?=」、または「?!」を使用して、関連する一致の保持を無視できます。

9. すべての記号の説明

キャラクターの説明

次の文字を特殊文字、リテラル文字、後方参照、または 8 進エスケープ文字としてマークします。たとえば、「n」は文字「n」と一致します。 「n」は改行文字に一致します。シーケンス「\」は「」に一致し、「(」は「(」に一致します。

^ は入力文字列の先頭と一致します。 RegExp オブジェクトの Multiline プロパティが設定されている場合、^ は 'n' または 'r' の後の位置にも一致します。

$ は入力文字列の終了位置と一致します。 RegExp オブジェクトの Multiline プロパティが設定されている場合、$ は 'n' または 'r' の前の位置にも一致します。

* 直前の部分式と 0 回以上一致します。たとえば、zo* は「z」と「zoo」に一致します。 * {0,} に相当します。

+ は、前の部分式に 1 回以上一致します。たとえば、「zo+」は「zo」と「zoo」には一致しますが、「z」には一致しません。 + は {1,} と同等です。

? 直前の部分式と 0 回または 1 回一致します。たとえば、「do(es)?」は「do」または「does」の「do」と一致します。 ? {0,1} に相当します。

{n}n は負ではない整数です。特定の回数 n 回一致します。たとえば、「o{2}」は「Bob」の「o」と一致できませんが、「food」の 2 つの o と一致します。

{n,}n は負ではない整数です。少なくとも n 回一致します。たとえば、「o{2,}」は「Bob」の「o」とは一致しませんが、「foooood」のすべての「o」には一致します。 「o{1,}」は「o+」と同等です。 「o{0,}」は「o*」と同等です。

{n,m}m と n は両方とも非負の整数であり、n

?この文字が他の修飾子 (*、+、?、{n}、{n,}、{n,m}) のすぐ後に続く場合、一致パターンは非貪欲です。非貪欲モードは検索文字列の可能な限り少ない部分と一致しますが、デフォルトの貪欲モードは検索文字列の可能な限り多くの部分と一致します。たとえば、文字列「oooo」の場合、「o+?」は単一の「o」に一致しますが、「o+」はすべての「o」に一致します。

。「n」を除く任意の 1 文字と一致します。 「n」を含む任意の文字と一致するには、「[.n]」のようなパターンを使用します。

(パターン) はパターンと一致し、この一致を取得します。取得された一致は、VBScript の SubMatches コレクションまたは JScript の $0 ~ $9 プロパティを使用して、生成された Matches コレクションから取得できます。括弧文字と一致させるには、「(」または「)」を使用します。

(?:pattern) はパターンに一致しますが、一致結果は取得されません。これは、非取得一致であり、後で使用するために保存されないことを意味します。これは、「または」文字 (|) を使用してパターンの一部を結合する場合に便利です。たとえば、「industr(?:y|ies)」は「industry|industries」より短い式です。

(?=pattern) 前方参照。文字列一致パターンの先頭にある検索文字列と一致します。これは非フェッチ一致です。つまり、後で使用するために一致をフェッチする必要はありません。たとえば、「Windows (?=95|98|NT|2000)」は、「Windows 2000」の「Windows」には一致しますが、「Windows 3.1」の「Windows」には一致しません。プリフェッチでは文字は消費されません。つまり、一致が発生した後、次の一致の検索は、プリフェッチを含む文字の後に開始されるのではなく、最後の一致の直後に開始されます。

(?!pattern) 否定検索。pattern に一致しない文字列の先頭にある検索文字列と一致します。これは非フェッチ一致です。つまり、後で使用するために一致をフェッチする必要はありません。たとえば、「Windows (?!95|98|NT|2000)」は、「Windows 3.1」の「Windows」と一致しますが、「Windows 2000」の「Windows」とは一致しません。プリフェッチは文字を消費しません。つまり、一致が発生した後、次の一致の検索は、プリフェッチ

を含む文字の後に開始されるのではなく、最後の一致の直後に開始されます。

x|y は x または y と一致します。たとえば、「z|food」は「z」または「food」と一致します。 '(z|f)ood' は、「zood」または「food」と一致します。

[xyz] 文字セット。含まれている文字のいずれかと一致します。たとえば、「[abc]」は「plain」の「a」と一致します。

[^xyz] 負の値の文字セット。含まれていない任意の文字と一致します。たとえば、「[^abc]」は「plain」の「p」と一致します。

[a-z] 文字範囲。指定された範囲内の任意の文字と一致します。たとえば、「[a-z]」は、「a」から「z」の範囲内の任意の小文字の英字と一致します。

[^a-z] 負の文字範囲。指定された範囲内にない任意の文字と一致します。たとえば、「[^a-z]」は、「a」から「z」の範囲にない任意の文字と一致します。

b は、単語とスペースの間の位置を指す単語境界に一致します。たとえば、「erb」は「never」の「er」と一致しますが、「verb」の「er」とは一致しません。

B は単語以外の境界に一致します。 「erB」は「動詞」の「er」と一致しますが、「never」の「er」とは一致しません。

cx は、x で指定された制御文字と一致します。たとえば、cM は Control-M または復帰文字と一致します。 x の値は、A ~ Z または a ~ z のいずれかでなければなりません。それ以外の場合、c はリテラルの「c」文字として扱われます。

d は数字と一致します。 [0-9]に相当します。

D は数字以外の文字と一致します。 [^0-9] と同等。

f はフォーム フィード文字と一致します。 x0c および cL に相当します。

n は改行文字と一致します。 x0a および cJ に相当します。

r は復帰文字と一致します。 x0d および cM に相当します。

は、スペース、タブ、フォーム フィードなどを含む任意の空白文字と一致します。 【fnrtv】に相当。

S は空白以外の文字に一致します。 [^ fnrtv] に相当します。

タブ文字と一致しません。 x09 および cI に相当します。

v は垂直タブ文字と一致します。 x0b および cK に相当します。

w は、アンダースコアを含む任意の単語文字に一致します。 「[A-Za-z0-9_]」と同等。

W は単語以外の文字に一致します。 「[^A-Za-z0-9_]」と同等。

xn は n と一致します。n は 16 進数のエスケープ値です。 16 進数のエスケープ値は、正確に 2 桁の長さである必要があります。たとえば、「x41」は「A」と一致します。 「x041」は「x04」および「1」と同等です。 ASCII エンコーディングは正規表現で使用できます。 .

num は num と一致します (num は正の整数)。取得した一致への参照。たとえば、「(.)1」は、連続する 2 つの同一の文字に一致します。

n は、8 進エスケープ値または後方参照を識別します。 n の前に少なくとも n 個のフェッチされた部分式がある場合、n は後方参照になります。それ以外の場合、n が 8 進数 (0 ~ 7) の場合、n は 8 進数のエスケープ値になります。

nm フラグは、8 進エスケープ値または後方参照を識別します。 nm の前に少なくとも nm 個の取得可能な部分式がある場合、nm は後方参照になります。 nm の前に少なくとも n が取得されている場合、n は後方参照であり、その後にリテラル m が続きます。前述の条件がどちらも当てはまらず、n と m が両方とも 8 進数 (0 ~ 7) である場合、nm は 8 進数のエスケープ値 nm と一致します。

n が 8 進数 (0 ~ 3) で、m と l が両方とも 8 進数 (0 ~ 7) である場合、

nml は 8 進数エスケープ値 nml と一致します。

un は n と一致します。n は 4 桁の 16 進数で表される Unicode 文字です。たとえば、u00A9 は著作権記号 (?) に一致します。

10.パターン修飾子の構成

パターン修飾子は文字ですが、これらはパターン修飾子の適用において特別な意味を持ちます。利用可能なパターン修飾子を以下の表で見てみましょう:

パターン修飾子の説明

パターンとのマッチングでは大文字と小文字が区別されないことを意味します

m は、パターンを複数行として扱います。^ と $ を使用して、任意の行が正規表現

で開始または終了できることを示します。

sこのモード修正記号が使用されない場合、デフォルトではメタキャラクター内の「.」は改行記号を表すことができず、文字列は単一行として扱われます

x はパターン内の空白が無視されることを意味します

正規表現は、文字列を置換する preg_replace 関数で使用される場合にのみ使用できます (この関数については後ほど説明します)

A は、メタキャラクター ^

に相当するパターン文字列で始まります。

Z はパターン文字列で終わり、メタキャラクター $

に相当します

U 正規表現の特徴: 比較的「貪欲」なモードを解除するには、このモード修飾子を使用します

最後の注意: PHP 正規表現でエスケープする必要がある文字は次のとおりです:

$^*()+={}[]|/:<>.?&#39;" 
ログイン後にコピー


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP 正規表現を使用して入力が IPv6 アドレスであるかどうかを確認する方法 PHP 正規表現を使用して入力が IPv6 アドレスであるかどうかを確認する方法 Jun 25, 2023 am 09:37 AM

IPv6 は、インターネット通信に使用される IP アドレス プロトコルである InternetProtocolVersion6 を指します。 IPv6 アドレスは 128 ビットで構成される数値であり、通常は 8 つの 16 進数グループで表されます。 PHP では、正規表現を使用して、入力が IPv6 アドレスであるかどうかを確認できます。ここでは、PHP 正規表現を使用して IPv6 アドレスを確認する方法を説明します。ステップ 1: IPv6 アドレスの形式を理解する IPv6 アドレスは 8 つの 16 進数ブロックで構成され、それぞれのブロックは

PHP正規表現を使用して文字列が空かどうかを確認する方法 PHP正規表現を使用して文字列が空かどうかを確認する方法 Jun 24, 2023 am 08:46 AM

PHP では、正規表現を使用して文字列が空かどうかを確認できます。文字列が空である場合には、次のようなケースが含まれます。 文字列にスペースのみが含まれています。文字列の長さは 0 です。文字列が null または未定義です。次に、PHP で正規表現を使用してこれらの状況を検証する方法について説明します。正規表現: s+ この正規表現は、スペースのみを含む文字列と一致するために使用できます。ここで、s はスペースの一致を意味し、+ は 1 つ以上の一致を意味します。コード例: functionisEmptySt

PHPで正規表現を使用してファイルパスであるかどうかを確認する方法 PHPで正規表現を使用してファイルパスであるかどうかを確認する方法 Jun 24, 2023 am 10:18 AM

PHP では、正規表現は文字列の照合および検証ツールとしてよく使用されます。開発プロセス中、入力ファイルのパスが正しい形式であることを確認するために頻繁に検証する必要があります。この記事では、正規表現を使用して文字列がファイル パスであるかどうかを確認する方法を紹介します。まず、ファイル パスの基本形式を決定する必要があります。 Windows システムでは、一般的なファイル パスは「C:ProgramFilesPHPphp.exe」のような形式です。パスは次の部分に分かれています。

入力文字列が ID 番号またはパスポート番号の形式であるかどうかを確認するための PHP 正規表現 入力文字列が ID 番号またはパスポート番号の形式であるかどうかを確認するための PHP 正規表現 Jun 24, 2023 pm 12:11 PM

ID 番号とパスポート番号は、人々の生活の中でよく使われる文書番号です。これらの文書番号に関連する機能を実装する場合、多くの場合、入力された番号の形式検証を実行して、その正確性を確認する必要があります。 PHP では、この機能を実現するために正規表現を使用することができますが、この記事では、PHP の正規表現を使用して、入力文字列が ID 番号またはパスポート番号の形式であるかどうかを確認する方法を紹介します。 1. ID カード番号の確認 ID カード番号は 18 桁で構成されており、最後の 1 桁は文字 (チェック コード) の場合があり、その形式は次のとおりです。

PHP正規表現を使用して電話番号の形式を検証する方法 PHP正規表現を使用して電話番号の形式を検証する方法 Jun 24, 2023 am 08:44 AM

Web アプリケーションを作成する場合、多くの場合、電話番号を検証する必要があります。 PHP の一般的な方法は、正規表現を使用して電話番号が正しい形式であるかどうかを判断することです。正規表現は、簡潔なステートメント内の特定のパターンを識別するのに役立つ強力なツールです。以下は、PHP で正規表現を使用して電話番号の形式を検証する例です。まず、電話番号の一般的な形式を定義しましょう。電話番号には、数字、括弧、ハイフン、スペースを含めることができます。標準の電話番号には 10 桁の数字が含まれており、その前に

PHP正規表現を使用してURLアドレス形式を確認する方法 PHP正規表現を使用してURLアドレス形式を確認する方法 Jun 24, 2023 am 09:51 AM

インターネットの急速な発展に伴い、URL アドレスは人々の日常生活に欠かせないものになりました。 Web 開発では、ユーザーが入力した URL アドレスがシステムで正しく認識され、使用されることを確認するために、形式検証を実行する必要があります。この記事では、PHP 正規表現を使用して URL アドレス形式を確認する方法を紹介します。 1. URL アドレスの基本コンポーネント URL アドレス形式を確認する方法を理解する前に、まず URL アドレスの基本コンポーネントを理解する必要があります。通常、標準の URL アドレスは次のもので構成されます。

PHP 正規表現を使用して特定の長さの入力を検証する方法 PHP 正規表現を使用して特定の長さの入力を検証する方法 Jun 24, 2023 am 10:17 AM

Web アプリケーションを開発する場合、多くの場合、ユーザー入力が特定の形式と長さの要件に準拠していることを確認する必要があります。 PHP 正規表現は、強力な検証方法を提供します。この記事では、PHP 正規表現を使用して特定の長さの入力を検証する方法を紹介します。入力長の要件を決定する 正規表現の作成を開始する前に、入力長の要件を決定する必要があります。たとえば、ユーザーが長さ 8 のパスワードを入力するように求められた場合、正規表現は 8 文字以上の文字列と一致するのではなく、8 文字と一致する必要があります。正規表現の書き込み

PHP で正規表現を使用して入力が IPv4 アドレスであるかどうかを確認する方法 PHP で正規表現を使用して入力が IPv4 アドレスであるかどうかを確認する方法 Jun 24, 2023 am 09:20 AM

PHP は、一般的なサーバーサイド プログラミング言語として、入力データの正確性を検証するための強力なツールをいくつか提供します。この記事では、正規表現を使用して入力が IPv4 アドレスであるかどうかを確認する方法に焦点を当てます。まず、IPv4アドレスとは何でしょうか? IPv4 アドレスは 32 ビットの 2 進数を指し、通常は 4 つの 8 ビット 2 進数に分割され、「.」で区切られ、10 進数形式で表されます。たとえば、127.0.0.1 は IPv4 アドレスです。それでは、正規表現を使用して次のことを行う方法を見てみましょう。

See all articles