<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// この部分は、記事の内容とは何の関係もありません,何でもかまいませんPHPコード</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"正規表現チュートリアルへようこそ!"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/*
タイトル:mb_ereg機能に正規表現を書くための仕様は何ですか?正しい表現を書くのに役立つ実用的なヒント
存在するPHP真ん中,mb_ereg関数はですmbstring拡張機能は、マルチバイトセーフの正規表現マッチング関数を提供します。処理に使用されますUTF-8マルチバイトエンコード文字列,これは伝統ですereg機能ができないこと。この記事では詳細に紹介しますmb_ereg真ん正規表現を書くための仕様,そしていくつかの実用的なヒント,正しく効率的な表現を書くのに役立ちます。
1つ、mb_ereg関数の紹介
mb_ereg関数の基本的な使用法は次のとおりです:
mb_ereg(pattern, string, [regs])
其真ん中,patternそれは正規表現です,string一致する文字列です,regs一致する結果の配列です(オプション)。
二、mb_ereg正規表現作成仕様
1. 使用POSIX標準的な正規表現
mb_ereg使用済みPOSIX正規表現構文,その代わりPerl正規表現と互換性があります(PCRE)。これはつまり:
- サポートされていませんPCRE真ん中的1つ些高级特性,アサーション、ゼロ以外の試合など。。
- 基本的な文字セットをサポートします、量子、ブラケットのグループ化、キャラクタークラスなど。
2. 区切り文字は必要ありません
そしてpregさまざまなシリーズ関数,mb_ereg真ん正規表現“/”または他の区切り文字,表現自体を書くだけです。例えば:
正しい:^[0-9]+$
間違い:/^[0-9]+$/
3. キャラクターを逃れることに注意してください
存在するPHPコード真ん中,文字列自体を逃れる必要がある場合があります。比如要マッチ1つ个点号“.”,存在する正则真ん中用“\.”急行,但存在するPHP文字列にバックスラッシュを追加します:
```php
$pattern = "a\.b"; // マッチa.b
</span></span></span>
同時に、MB_EREG関数の通常の構文の「\ d」のような略語はサポートされていないため、代わりに[0-9]を使用することをお勧めします。
MB_EREGはMBSTring拡張機能の関数であるため、マルチバイトのマッチングをサポートします。これは、UTF-8などのマルチバイトエンコードを自然にサポートするため、キャラクタークラスには漢字などのマルチバイト文字も含めることができます。例えば:
<span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">"^[\x{4e00}-\x{9fa5}]+$"</span></span><span>; </span><span><span class="hljs-comment">// マッチ纯真ん中文字符串</span></span><span>
</span></span>
ただし、MBREGEX_ENCODINGと組み合わせて正しいエンコードを設定する必要があります。
3。実践的なスキル
エンコードコールMB_REGEX_ENCODING( "UTF-8")を設定して、正規表現と文字列のエンコードが一貫していることを確認し、障害の一致を避けます。
略語の代わりに文字クラスを使用して、 \ wや\ dなどの略語を使用しないようにし、[0-9A-ZA-Z_]などの特定の文字クラスを使用します。
キャプチャグループを使用します
MB_EREGはブラケットキャプチャをサポートし、一致するコンテンツを3番目のパラメーターから取得できます。例えば:
<span><span><span class="hljs-title function_ invoke__">mb_ereg</span></span><span>(</span><span><span class="hljs-string">"([0-9]+)-([a-z]+)"</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-variable">$matches</span></span><span>);
</span></span>
このようにして、$ mates [1]は数値部分であり、$ mates [2]は文字部品です。
デバッグ式MB_EREGのエラープロンプトが限られているため、最初にオンラインPOSIX規則テストツールを使用して、式が正しいことを確認した後にMB_EREGを使用することをお勧めします。
4。概要
MB_EREG関数の正規表現の書き込みは、POSIX標準に従い、区切り文字を必要とせず、PCRE固有の構文を回避します。正しいエンコード設定と文字クラスのライティングを使用すると、マルチバイトの文字列マッチングを効率的に処理できます。これらの仕様とテクニックを習得すると、正確で堅牢な正規表現を書き、プログラムの安定性と互換性を向上させるのに役立ちます。
この記事が、MB_EREGの正規表現の執筆仕様を理解するのに役立つことを願っています!
*/
?>
<span></span>