PHP 正規表現は主に、文字列のパターン分割、マッチング、検索、置換操作に使用されます。一部の単純な環境では正規表現の使用が効率的でない可能性があるため、PHP 正規表現をより効果的に使用するには、包括的な考慮が必要です
私の PHP 正規表現入門は、インターネット上の記事から始まりました。この記事は、PHP 正規表現の使用方法を浅いところから深いところまで説明していますが、入門書としては十分だと思います。使っているうちに忘れてしまうので、難しい知識についてはこの記事を何度も読み返して理解するのに時間がかかることもあります。これを読んだ後は、規則を適用する能力が大幅に向上することがわかります。
bkJia ビデオ チュートリアル 36: PHP の正規表現の学習と応用 (1)
bkJia ビデオチュートリアル 37: PHP の正規表現の学習と応用 (2)
bkJia ビデオチュートリアル 38: PHP の正規表現の学習と応用 (3)
bkJia ビデオチュートリアル 39: PHP の正規表現の学習と応用 (4)
PHP正規表現の定義:
文字の配置とパターンの一致を記述するために使用される文法規則。これは主に、文字列のパターン分割、マッチング、検索、置換操作に使用されます。
PHP の通常の関数:
PHP には 2 つの標準関数のセットがあり、それらの機能は似ており、次のとおりです。
1 つのセットは PCRE (Perl 互換正規表現) ライブラリによって提供されます。接頭辞「preg_」が付いた名前の関数;POSIX (Unix のポータブル オペレーティング システム インターフェイス) によって提供される拡張機能のセット。接頭辞「ereg_」が付いた名前の関数を使用してください (POSIX の通常の関数ライブラリは PHP 5.3 以降使用が推奨されなくなり、PHP 6 から削除されます)
POSIX 規則性が歴史の舞台に登場しようとしており、PCRE と perl の形式が似ているため、perl と php の間で切り替える方が便利であるため、ここでは PCRE 規則性の使用に焦点を当てます。
PCRE 正規表現
PCRE は Perl Compare Regular Expression の略で、Perl 互換の正規表現を意味します。
PCRE では、パターン式 (正規表現) は通常、「/apple/」のように 2 つのバックスラッシュ「/」で囲まれます。
正規表現の重要な概念は、メタキャラクター、エスケープ、パターン単位 (繰り返し)、反意語、参照、およびアサーションです。これらの概念は、記事 [1] で簡単に理解して習得できます。
よく使用されるメタ文字:
メタキャラクターの説明
A は文字列の先頭のアトムと一致します
文字列の末尾のアトムと一致します
単語の境界に一致します / is/ 先頭が /is / である文字列に一致します 末尾が / is / である文字列に一致します 区切り
B 単語の境界を除く任意の文字に一致します /Bis/ 単語「This」の「is」に一致します
d [0-9] に相当する数値と一致します。
D [^0-9] と同等の数字を除く任意の文字と一致します。
w [0-9a-zA-Z_] に相当する英語の文字、数字、またはアンダースコアと一致します。W [^0-9a-zA-Z_] に相当する英語の文字、数字、アンダースコアを除く任意の文字に一致します。
s [f v]と同等の空白文字と一致します。
S [^f v]と同等の空白文字を除く任意の文字と一致します。
f x0c または cL と同等のフォーム フィードと一致しますx0a または cJ に相当する改行文字と一致します
x0d または cM に相当するキャリッジリターンと一致します
x09 または cl
と同等のタブ文字に一致します。
v x0b または ck に相当する垂直タブ文字と一致します。oNN は 8 進数に一致します
xNN は 16 進数と一致します
cC 制御文字と一致します
パターン修飾子:
パターン修飾子は、大文字と小文字を区別したり、複数の行を一致させたりする場合に特に使用されます。この修飾子をマスターすると、遭遇する多くの問題が解決されることがよくあります。
i - 大文字と小文字の両方に一致します
M - 文字列を複数行として扱います
S - 文字列を単一行として扱い、改行を通常の文字として扱い、「.」を任意の文字と一致させます
X - パターン内の空白は無視されます
U - 最も近い文字列と一致します
e - 置換された文字列を式として使用します
形式: /apple/i は、大文字と小文字を区別せずに、「apple」または「Apple」などに一致します。 /i
PCREのパターンユニット:
/^d{2} ([W])d{2}1d{4}$ は、「12-31-2006」、「09/27/1996」、「86 01 4321」などの文字列に一致します。しかし、上記の正規表現は「12/34-5678」の形式と一致しません。これは、パターン「[W]」の結果「/」がすでに格納されているためです。次の位置「1」が参照される場合、その一致パターンも文字「/」になります。
マッチング結果を保存する必要がない場合は、非保存パターンユニット「(?:)」を使用してください
たとえば、/(?:a|b|c)(D|E|F)1g/ は「aEEg」と一致します。一部の正規表現では、非ストレージ モード単位を使用する必要があります。それ以外の場合は、後続の参照の順序を変更する必要があります。上記の例は、/(a|b|c)(C|E|F)2g/ と書くこともできます。
PCRE正規表現関数:
リーリー関数の具体的な使用方法は、PHP マニュアルを参照してください。ここでは、私たちが蓄積した正規表現をいくつか紹介します。
アクション属性の一致リーリー
正規表現でコールバック関数を使用する
<ol class="dp-c"> <li class="alt"><span><span class="comment">/**<font color="#008200"></font> </span></span></li> <li><span><span class="comment"> * 一部の文字列をコールバック関数で置き換えます<font color="#008200"></font> </span></span></li> <li class="alt"><span><span class="comment"> *<font color="#008200"></font> </span></span></li> <li><span><span class="comment"> */<font color="#008200"></font></span><span></span></span></li> <li class="alt"> <span></span><span class="keyword"><strong>function<font color="#006699"></font></strong></span> callback_replace() { <span></span> </li> ️ <li>http://esfang.house.sina. com.cn<span></span><span class="vars">; <font color="#dd0000"></font></span><span> </span><span class="string"> <font color="#0000ff"></font></span>$str <span> </span> </li> <li class="alt">http://www.bkjia.com/PHPjc/486470.html<span></span>www.bkjia.com<span class="vars"><font color="#dd0000">true</font></span>http://www.bkjia.com/PHPjc/486470.html<span></span>技術記事<span class="string"><font color="#0000ff"> PHP 正規表現は主に、文字列のパターン分割、マッチング、検索、置換操作に使用されます。一部の単純な環境では正規表現の使用が効率的でない可能性があるため、より適切に使用するにはどうすればよいですか...</font></span><span></span> </li> <li> </ol>