PHP_PHP チュートリアルの正規表現と PCRE 関数
PHP の正規表現と PCRE 関数
PCRE
PHP には、正規表現を使用する 2 つの異なる方法があります。PCRE (Perl 互換表記、preg_*) 関数と POSIX (POSIX 拡張表記、ereg_*) 関数です。幸いなことに、POSIX ファミリの関数は PHP 5.3.0 から非推奨になりました。
正規表現
区切り文字
一般的に使用される区切り文字は、スラッシュ (/)、ハッシュ記号 (#)、および否定記号 (~) です。次の例はすべて、正当な区切り文字を使用したパターンです
リーリー終了区切り文字の後にパターン修飾子を追加できます
メタキャラクター
一部の文字には特別な意味が与えられ、単にそれ自体を表すだけではなくなります。パターン内で特別な意味を持つこのタイプのコード化された文字は 元字符
と呼ばれます。
メタキャラクター | 説明 |
---|---|
通常、文字をエスケープするために使用されます | |
^ | ターゲットの開始位置(または複数行モードの場合は行の先頭)をアサートします |
$ | ターゲットの終了位置(または複数行モードの行末)をアサートします |
. | 改行を除く任意の文字と一致します (デフォルト) |
[ | 文字クラス定義の開始 |
] | 文字クラス定義の終了 |
| | オプションのブランチを開始する |
( | サブグループの開始タグ |
) | サブグループの終了タグ |
? | 数量詞として、0 または 1 の一致を意味します。量指定子の後に配置して、量指定子の貪欲な性質を変更します。 (数量詞を調べてください) |
* | 数量子、0 個以上の一致 |
+ | 数量指定子、1 つ以上の一致 |
{ | カスタマイズされた量指定子の開始タグ |
} | カスタマイズされた量指定子終了タグ |
パターンの角括弧で囲まれた部分は「文字クラス」と呼ばれます。 文字クラス内で使用できる唯一のメタキャラクターは次のとおりです
メタキャラクター | 説明 |
---|---|
エスケープ文字 | |
^ | 最初の文字 (角括弧内) として使用される場合のみ、文字クラスの否定を示します |
- | 文字範囲をマークする |
キャラクタークラス
角括弧内の内容は文字クラスです
いくつかの事前定義された文字クラスがあります
キャラクタークラス | 説明 |
---|---|
d | 任意の 10 進数 |
D | 10 進数以外の任意の数値 |
え | 水平方向の空白文字 (PHP 5.2.4 以降) |
ひ | 水平以外の空白文字 (PHP 5.2.4 以降) |
す | 任意の空白文字 |
S | 空白以外の文字 |
任意の垂直空白文字 (PHP 5.2.4 以降) | |
V | 垂直以外の空白文字 (PHP 5.2.4 以降) |
w | 任意の単語文字 |
わ | 単語以外の文字 |
アトム
目に見える原子
としてabc
目に見えない原子
として
数量詞
数量化子 | |
---|---|
* | は {0,} | と同等です
+ | は {1,} | と同等です
? | {0,1}に相当 |
断言
简单的断言代码有、B、 A、 Z、z、 ^、$
前瞻断言
从当前位置向前测试
(?=)
(?!)
w+(?=;)
匹配一个单词紧跟着一个分号但是匹配结果不会包含分号
后瞻断言
从当前位置向后测试
(?<=)
(?<!--)</code-->
<code>(?<!--foo)bar</code-->用于查找任何前面不是 ”foo” 的 ”bar”
<code>模式修饰符
<code>模式修饰符
|
|
---|---|
<code>U |
<code>这个修饰符逆转了量词的”贪婪”模式,使量词默认为非贪婪的 |
<code>i |
<code>大小写不敏感匹配 |
<code>x |
<code>忽略空白 |
<code>s |
<code>点号元字符匹配所有字符,包含换行符。如果没有这个修饰符,点号不匹配换行符 |
<code>… |
<code>PCRE 函数
<code><code><code>preg_filter — 执行一个正则表达式搜索和替换 preg_grep — 返回匹配模式的数组条目 preg_last_error — 返回最后一个PCRE正则执行产生的错误代码 preg_match_all — 执行一个全局正则表达式匹配 preg_match — 执行一个正则表达式匹配 preg_quote — 转义正则表达式字符 preg_replace_callback_array — Perform a regular expression search and replace using callbacks preg_replace_callback — 执行一个正则表达式搜索并且使用一个回调进行替换 preg_replace — 执行一个正则表达式的搜索和替换 preg_split — 通过一个正则表达式分隔字符串 </code></code></code>

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









Go 言語は、クロージャとリフレクションという 2 つの動的関数作成テクノロジを提供します。クロージャを使用すると、クロージャ スコープ内の変数にアクセスでき、リフレクションでは FuncOf 関数を使用して新しい関数を作成できます。これらのテクノロジーは、HTTP ルーターのカスタマイズ、高度にカスタマイズ可能なシステムの実装、プラグイン可能なコンポーネントの構築に役立ちます。

C++ 関数の名前付けでは、読みやすさを向上させ、エラーを減らし、リファクタリングを容易にするために、パラメーターの順序を考慮することが重要です。一般的なパラメータの順序規則には、アクション-オブジェクト、オブジェクト-アクション、意味論的な意味、および標準ライブラリへの準拠が含まれます。最適な順序は、関数の目的、パラメーターの種類、潜在的な混乱、および言語規約によって異なります。

1. SUM 関数は、列またはセルのグループ内の数値を合計するために使用されます (例: =SUM(A1:J10))。 2. AVERAGE 関数は、列またはセルのグループ内の数値の平均を計算するために使用されます (例: =AVERAGE(A1:A10))。 3. COUNT 関数。列またはセルのグループ内の数値またはテキストの数をカウントするために使用されます。例: =COUNT(A1:A10)。 4. IF 関数。指定された条件に基づいて論理的な判断を行い、結果を返すために使用されます。対応する結果。

効率的で保守しやすい Java 関数を作成するための鍵は、シンプルに保つことです。意味のある名前を付けてください。特殊な状況に対処します。適切な可視性を使用してください。

Golang の正規表現では、パイプ文字 | を使用して複数の単語または文字列を一致させ、各オプションを論理 OR 式として区切ります。例: 「fox」または「dog」に一致します: fox|dog は「quick」、「brown」または「lazy」に一致します: (quick|brown|lazy) 「Go」、「Python」または「Java」に一致します: Go| Python |Java は単語または 4 桁の郵便番号と一致します: ([a-zA

C++ 関数のデフォルト パラメーターの利点には、呼び出しの簡素化、可読性の向上、エラーの回避などがあります。欠点は、柔軟性が限られていることと、名前の制限があることです。可変引数パラメーターの利点には、無制限の柔軟性と動的バインディングが含まれます。欠点としては、複雑さの増大、暗黙的な型変換、デバッグの難しさなどが挙げられます。

C++ で参照型を返す関数の利点は次のとおりです。 パフォーマンスの向上: 参照による受け渡しによりオブジェクトのコピーが回避され、メモリと時間が節約されます。直接変更: 呼び出し元は、返された参照オブジェクトを再割り当てせずに直接変更できます。コードの簡素化: 参照渡しによりコードが簡素化され、追加の代入操作は必要ありません。

カスタム PHP 関数と定義済み関数の違いは次のとおりです。 スコープ: カスタム関数はその定義のスコープに限定されますが、事前定義関数はスクリプト全体からアクセスできます。定義方法: カスタム関数は function キーワードを使用して定義されますが、事前定義関数は PHP カーネルによって定義されます。パラメータの受け渡し: カスタム関数はパラメータを受け取りますが、事前定義された関数はパラメータを必要としない場合があります。拡張性: カスタム関数は必要に応じて作成できますが、事前定義された関数は組み込みで変更できません。
