一般的に使用される PHP 正規表現と文法注釈のまとめ
基本構文
区切り文字:
正規表現の先頭と末尾を識別します。「/」または「」を使用します。 #' または '{ }' は、構文 '{ }' が正規表現演算子である可能性があるため、混乱を避けるために使用することはお勧めできません。推奨される使用法は次のとおりです。
Copy$pattern = '/[0-9]/'; //我喜欢这个,看起来比较简洁 $pattern = '#[0-9]#';
アトム:
可視アトム: Unicode エンコード テーブル内の肉眼で見える文字キーボード出力後、例: Punctuation; . / ? または、英語文字、中国語文字などの可視文字
不可視アトム: キーボード出力後に肉眼では見えない Unicode エンコード テーブル内の文字。 : newline \n、Tab \t、space Wait、
一般的にはこれら 3 つだけが使用されます (改行文字だけが照合できないため、通常、改行文字は他の文字と一緒に照合されます)
ヒント: ' を追加する必要があります。一致する演算子の前に \' を付けます。例: ' ' 記号、一致する場合は、'\ '
メタキャラクタ
アトム フィルタリング メソッド:
| 2 つ以上の分岐選択に一致します。
[] は角括弧内の任意の原子に一致します。
[^] は角括弧内の原子を除く任意の文字に一致します。
例: Duang|duang または [Dd ]uang は Duang と duang の両方に一致します
インターバル書き込み: [a-z] は a ~ z の文字に一致し、[0-9] は 0 ~ 9 の文字に一致します。 [a-z0-9]
とすることもできます。改行文字を除く任意の文字に一致します。
\d は任意の 10 進数の数字に一致します。つまり、{0-9]
\D は任意の 10 進数以外の数字に一致します。 [^0-9] は、[^\d]
\s が目に見えない原子に一致することと同等です。つまり、[\f\n\r\t\v]
\S は目に見える原子に一致します。 [\f\n\r\t\v] は、[\s]z
\w と同等で、任意の数字、文字、またはアンダースコアに一致します。つまり、[0-9a-zA-Z_]
\ W は、数字、文字、またはアンダースコア以外の任意の [0-9a-zA-Z_] に一致し、[\w]
#quantifier
## と同等です。 ## {n} は、その前の原子が正確に n 回出現することを意味します。[n] は、前のアトムが少なくとも n 回出現することを意味します。境界制御{n,m} は少なくとも n 回、最大で m 回出現します。
* は 0 回、1 回または複数回一致します。つまり、 {0,}
1 回以上一致、つまり {1,}
? 0 回または 1 回一致、つまり {0,1}
#^ 文字列の開始位置と一致します
$ 文字列の終了位置と一致します例: ^John は John と一致しますが、123John と一致することはできません。文字列が John で始まるように指定されているため、Pattern Unit
() は、その全体がアトムとして一致します。たとえば、(X|x) )iaomi、xiaomi と一致する可能性があります
修正モード
貪欲なマッチング
マッチング結果があいまいな場合は、長い方 (デフォルト)
遅延マッチング
マッチング結果があいまいな場合は、短い方を選択してください。正規表現の「/」の後に「U」を追加するだけです。 、'/[0-9]/U' など;例:
Copy$subject = "test__123123123"; preg_match('/test.+123/', $subject, $matches); //贪婪模式 var_dump($matches); preg_match('/test.+123/U', $subject, $matches); //懒惰模式var_dump($matches);
一般的な修正パターン:
U 遅延マッチング
i 大文字と小文字は無視します。英語の文字#xx 正規表現の空白文字を無視しますs メタ文字「.」を改行を含むすべての文字に一致させます
共通関数
#preg_matchマッチングを実行する正規表現
preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] ) : int
pattern: 検索するパターン、文字列型。件名: 入力文字列。 match: パラメータ match が指定されている場合、検索結果が入力され、データ構造は 1 次元配列になります。 flags: 検索結果の 0 番目の要素を一致した文字列として使用し、最初の要素を対応するオフセット (位置) として使用して、PREG_OFFSET_CAPTURE に設定できます。 offset: 検索はターゲット文字列の開始位置から開始されます。
戻り値: 一致の数
関数 preg_match_all と同様に、パラメータは preg_match と一致します違い:
preg_match: 検索のデータ結果である 1 回のみ一致します構造一致は 1 次元配列 preg_match_all : 全一致、検索結果一致のデータ構造は 2 次元配列です。
preg_replace
正規表現の検索と置換を実行し、戻り値は置換された文字列
preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) : mixed
pattern: 検索対象のパターンです。文字列または文字列の配列を指定できます。 replace: 置換される文字列または文字列の配列 subject: 検索および置換される文字列または文字列の配列。制限: 置換の最大数。デフォルトは -1 (無制限) です。 count: 置換の数。
関数 preg_filter と同様に、パラメーターは preg_replace と同じです違い (違いは、照合に配列を使用する場合にのみ確認できます): preg_replace: 置換の有無に関係なく、すべての結果を返します preg_filter: のみを返します一致する結果。
preg_split
正規表現で文字列を区切る
preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] ) : array
$pattrn:用于搜索的模式,字符串形式。subject:输入字符串limit:将限制分隔得到的子串最多只有limit个,返回的最后一个 子串将包含所有剩余部分。flags:有以下标记的组合:
-- 1. PREG_SPLIT_NO_EMPTY: 返回分隔后的非空部分。
-- 2. PREG_SPLIT_DELIM_CAPTURE: 用分隔符'()'括号把匹配的捕获并返回。
-- 3. PREG_SPLIT_OFFSET_CAPTURE: 匹配返回时将会附加字符串偏移量
PREG_SPLIT_DELIM_CAPTURE这个参数可能比较难明白,举个例子看看:
Copy$subject = "1a23b"; $a = preg_split('/[\d]/', $subject, -1, PREG_SPLIT_NO_EMPTY); var_dump($a); $a = preg_split('/([\d])/', $subject, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); var_dump($a);
输出如下:
array (size=2)
0 => string 'a' (length=1)
1 => string 'b' (length=1)
array (size=5)
0 => string '1' (length=1)
1 => string 'a' (length=1)
2 => string '2' (length=1)
3 => string '3' (length=1)
4 => string 'b' (length=1)
preg_grep
返回匹配模式的数组条目
preg_grep ( string $pattern , array $input [, int $flags = 0 ] ) : array
$pattern:要搜索的模式,字符串形式$input:输入数组flags:如果不设置则返回匹配的数目,设置PREG_GREP_INVERT则返回不匹配的数目。
preg_quote
转义正则表达式字符,返回为转义后的字符串
preg_quote ( string $str [, string $delimiter = NULL ] ) : string
str:输入字符串delimiter:需要转义的字符串
以上が一般的に使用される PHP 正規表現と文法注釈のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。
