PHP 正規表現の定義:
文字の配置とパターンの一致を記述するために使用される文法規則。これは主に、文字列のパターン分割、マッチング、検索、置換操作に使用されます。
PHP の正規関数:
PHP には 2 セットの正規関数があります。これらの 2 つの正規関数には、次のような類似した機能があります。
1 つのセットは、PCRE (Perl 互換正規表現) ライブラリによって提供されます。接頭辞「preg_」が付いた名前の関数。
POSIX (Portable Operating System Interface of Unix) 拡張機能によって提供される関数のセット。接頭辞「ereg_」が付いた名前の関数を使用してください (POSIX 正規関数ライブラリは PHP 5.3 以降使用が推奨されなくなり、PHP 6 から削除されます)
POSIX 正規関数は歴史的な段階で開始されようとしているため、 PCRE これは perl の形式に似ており、perl と php を切り替えるのに便利であるため、ここでは PCRE の規則性の使用に焦点を当てます。
PCRE正規表現
PCREとはPerl Compatible Regular Expressionの略で、Perl互換の正規表現という意味です。
PCRE では、パターン式 (つまり、正規表現) は通常、「/apple/」のように 2 つのバックスラッシュ「/」で囲まれます。
正規表現の重要な概念は、メタキャラクター、エスケープ、パターン単位 (繰り返し)、反意語、参照、およびアサーションです。これらの概念は、記事 [1] で簡単に理解して習得できます。
一般的に使用されるメタ文字:
メタ文字 説明
/A 文字列の先頭のアトムと一致します
/Z 文字列の末尾のアトムと一致します
/b 単語の境界と一致します//bis / 先頭が /is/b/ である文字列に一致します。 //bis/b/ が末尾である文字列に一致します。 区切り文字付き
/B 単語の境界を除く任意の文字に一致します。 //Bis/ 単語 "This" に一致します。
/d の「is」は数字に一致し、[0-9]
/D は数字以外の任意の文字に一致し、[^0-9]
/w は英語の文字、数字、またはアンダースコアに一致します。 ; [0-9a-zA-Z_]
/W に相当します。 英語の文字、数字、アンダースコアを除く任意の文字に一致します。 [^0-9a-zA-Z_]
/ に相当します。 [/f/t/v]
/S 空白文字を除く任意の文字と一致します。 [^/f/t/v]
/f と同等です。 ページ フィードと同等です。 /x0c または /cL
と同等です。 改行と一致します。 /x0a または /cJ
に相当する文字。 キャリッジ リターン文字に相当します。 /x0d または /cM
/t に相当します。 タブ文字などに相当します。 /x09/ または /cl
/v に相当します。 垂直タブに相当します。文字; /x0b または /ck
/oNN と同等 8 進数の数字と一致する
/xNN 16 進数の数字と一致する
/cC 制御文字と一致する
パターン修飾子:
パターン修飾子は、特に大文字と小文字を無視して一致する場合に使用されます。この修飾子をマスターすると、遭遇する多くの問題を解決できることがよくあります。
i - 大文字と小文字の両方に一致します
M - 文字列を複数行として扱います
S - 文字列を単一行として扱い、改行を通常の文字として扱い、「.」は任意の文字と一致します
X - パターン内の空白は無視されます
U - 最も近い文字列と一致します
e - 置換された文字列を式として使用します
形式: /apple/i は、「apple」または「Apple」などを無視して一致します場合。 /i
PCRE パターン単位:
//1 最初の属性を抽出します
/^/d{2} ([/W])/d{2}//1/d{4}$ 以下のような文字列に一致します「2006 年 12 月 31 日」、「1996 年 9 月 27 日」、「86 01 4321」など。しかし、上記の正規表現は「12/34-5678」の形式と一致しません。これは、パターン「[/W]」の結果「/」がすでに格納されているためです。次の位置「/1」が引用符で囲まれている場合、その一致パターンも文字「/」になります。
マッチング結果を保存する必要がない場合は、非保存パターン単位「(?:)」を使用してください
例: /(?:a|b|c)(D|E|F)//1g/ 「aEEg」と一致します。一部の正規表現では、非ストレージ モード単位を使用する必要があります。それ以外の場合は、後続の参照の順序を変更する必要があります。上記の例は、/(a|b|c)(C|E|F)/2g/ と書くこともできます。
PCRE 正規表現関数:
以下は引用された内容です:
preg_match() と preg_match_all()
preg_quote()
preg_split()
preg_grep()
preg_replace()
関数の使用, PHP マニュアルから見つけることができます。 ここでは、私たちが蓄積したいくつかの正規表現を示します:
action 属性と一致します
以下は引用された内容です:
$str = '';
$match = '';
preg_match_all('//s+action=/"(?!http:)(.*?)/"/s/', $str, $match) ;
print_r($match);
正規表現でコールバック関数を使用します
以下は引用内容です:
function callback_replace() { $url = ' http://esfang.house.sina.com.cn';
$str = '';
$str = preg_replace ( '/(?<=/saction=/")(?!http:)(.* ?)( ?=/"/s)/e', 'search(/$url, //1)', $str );
echo $str;
}
function search($url, $match){
$url を返します。$match; 段落テキスト
'; 1>)/', $str, $match ) ;
echo "属性なしで HTML タグの内容を照合します:";
HTML ソースコード内のアドレスを置き換えます
$form_html = preg_replace ( '/ (?<=/saction=/"|/ssrc=/"|/shref=/")(?!http:|javascript)(.*?) (?=/"/s)/e', 'add_url (/$url, /'//1/')', $form_html );
最後に、通常のツールは強力ですが、効率の点では緊急のタスクやそれほど要求のないタスクの場合は、単純で大まかなアプローチの方が良い場合があります。
http://www.bkjia.com/PHPjc/371448.html
www.bkjia.com
http://www.bkjia.com/PHPjc/371448.html
技術記事
PHP 正規表現の定義: 文字の配置と一致パターンを記述するために使用される文法規則。これは主に、文字列のパターン分割、マッチング、検索、置換操作に使用されます。 PHP でポジティブ...