ホームページ  >  記事  >  バックエンド開発  >  PHP 正規表現の一般的に使用される関数、PHP 正規表現関数_PHP チュートリアル

PHP 正規表現の一般的に使用される関数、PHP 正規表現関数_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:20:43790ブラウズ

PHP正規表現共通関数、PHP正規表現関数

1. preg_match()

関数プロトタイプ: int preg_match (string $pattern, string $content [, array $matches])
preg_match () 関数は、$content 文字列内で、$pattern で指定された正規表現に一致するコンテンツを検索します。 $matches が指定されている場合、一致する結果がそこに配置されます。 $matches[0] にはパターン全体に一致するテキストが含まれ、$matches[1] には括弧で囲まれたパターン要素の最初にキャプチャされた一致が含まれます。この関数は 1 つの一致のみを実行し、最終的に一致結果の数 0 または 1 を返します。リスト 6.1 は、preg_match() 関数のコード例を示しています。
コード 6.1 日付と時刻の一致
コードは次のとおりです:

リーリー

これは、単純な動的テキスト文字列マッチングの例です。現在のシステム時刻を「2006年8月17日13時25分」とすると、以下の内容が出力されます。
一致時刻は: 2006-08-17 01:25 pm
現在の日付: 2006-08-17
現在の時刻: 午後 1 時 25 分

2. ereg() と eregi()

ereg() は、POSIX 拡張ライブラリの正規表現マッチング関数です。 eregi() は、ereg() 関数の大文字と小文字を無視するバージョンです。どちらも preg_match と同様の関数を持っていますが、この関数は一致が成功したかどうかを示すブール値を返します。 POSIX 拡張ライブラリ関数の最初のパラメータは正規表現文字列を受け入れる、つまり区切り文字は必要ないことに注意してください。たとえば、リスト 6.2 はファイル名のセキュリティをチェックする方法です。
コード 6.2 ファイル名のセキュリティチェック
コードは次のとおりです:

リーリー

通常、Perl 互換の正規表現マッチング関数 perg_match() を使用すると、ereg() や eregi() を使用するより高速になります。文字列に特定の部分文字列が含まれているかどうかだけを確認したい場合は、strstr() 関数または strpos() 関数を使用することをお勧めします。

正規表現の置換

1. ereg_replace() と eregi_replace()

関数プロトタイプ: string ereg_replace (string $pattern, string $replacement, string $string)
string eregi_replace (string $pattern, string $replacement, string $string)
ereg_replace() は、$string 内のパターン文字列 $pattern を検索し、一致した結果を $replacement に置き換えます。 $pattern にパターン ユニット (またはサブパターン) が含まれている場合、「/1」や「$1」などの $replacement 内の位置は、これらのサブパターンに一致するコンテンツに置き換えられます。また、「/0」または「$0」は、一致する文字列全体の内容を指します。バックスラッシュは二重引用符内のエスケープ文字として使用されるため、「//0」および「//1」の形式を使用する必要があることに注意してください。
eregi_replace() と ereg_replace() の関数は、前者が大文字と小文字を区別しないことを除いて同じです。コード 6.6 は、この関数の応用例です。このコードは、プログラムのソース コードに対して簡単なクリーニング作業を行う方法を示しています。
コード 6.6 ソースコードのクリーンアップ
コードは次のとおりです:

リーリー

2. preg_replace()

関数プロトタイプ:mixed preg_replace (mixed $pattern、mixed $replacement、mixed $subject [, int $limit])
preg_replace は ereg_replace よりも強力です。最初の 3 つのパラメータはすべて配列を使用でき、4 番目のパラメータ $limit は置換数を設定でき、デフォルトではすべて置換されます。コード6.7は配列置換の応用例です。
コード 6.7 配列の置換
コードは次のとおりです:

リーリー

出力結果は以下の通りです。

リーリー

preg_replaceの正規表現ではパターン修飾子「e」を使用できます。その機能は、一致結果を式として使用することであり、再操作できます。例:
コードは次のとおりです:

リーリー

ヒント
preg_replace 関数は Perl 互換の正規表現構文を使用し、一般に ereg_replace よりも高速な代替関数です。文字列の単純な置換のみを実行したい場合は、str_replace 関数を使用できます。

PHP 関数 preg_match_all を使用して正規表現の効果をテストする方法

PHP関数preg_match_allコード例:php自習ネットワーク2< /div< div id="biuuu_3"php自習ネットワーク3< /div'; 各DIV要素のIDと内容を取り出します。個別に、 biuuu 、 biuuu_2、biuuu_3、php self-study network、php self-study network 2、php self-study network 3など(一部の一般的なWebサイト取得方法はこの方法で一致します) 分析: 文字列は単純なHTML要素です、各 DIV 要素は ID とコンテンツに対応しており、独立しています。まず、PHP 自習ネットワークなど、DIV 内の ID 値とコンテンツを抽出する方法を検討してから、他の同様の要素と照合します。 DIV から 2 つの値、つまり 2 つの一致する式を取り出す必要があります。最初の式は ID 値 (biuuu) と一致するために使用され、2 番目の式は ID (php self) の内容と一致するために使用されます。 -study network) を使用する場合、前の要素は次の形式になります: < div id="(biuuu)"(php self-study network)<式 1 )"(式 2)< /div 式 1: [a-zA-Z0-9_]+ (大文字、小文字、数字、アンダースコアが一致することを示します) 式 2: [^<]+ (一致しないことを示します) < と文字) このようにして、PHP 関数 preg_match_all が一致する必要がある部分式が実装されますが、メソッドは次のとおりです。 式: / '"(式 1)"'(式) 2 )/ 二重引用符 " と / はエスケープ文字を使用してエスケープし、次のように最初の 2 つの式を挿入する必要があることに注意してください: '"([a-z0-9_]+)"'/< div id = "([a-z0-9_]+)"([^<]+)< /div/ このようにして、各 DIV 要素の ID 値と内容に一致する正規表現が実装され、 preg_match_all 関数は次のようにテストします。 biuuu_3"php 自習ネットワーク 3< /div'; preg_match_all ('/< divsiddivsid="([a-z0-9_]+)"([^<]+)< /div/',$html ,$result); var_dump($result); PHP 関数 preg_match_all 結果の例: array(3) { [0]= array(3) { [0]= string(30) "php self-study network" [1]= string(33) "php自習ネットワーク2" [2]= string( 33) "php自習ネットワーク3" } [1]= array(3) { [0]= string(5) "biuuu" [ 1]= string(7) "biuuu_2" [2]= string(7) "biuuu_3& ……残り全文>>

PHP 関数 preg_match_all を使用して正規表現の効果をテストする方法

今日は、正規表現テストにおける PHP 関数 preg_match_all の使用法を紹介します。 PHP 関数 preg_match_all コード例: $html = < div id="biuuu">php 自習ネットワーク< /div>< div id="biuuu_3"> -study network 3< /div>; PHP 動的 Web サイト開発スキル PHP 印刷関数の種類を共有する PHP の $_SERVER の詳細を要約する PHP 関数 stristr() の具体的な使用法を整理する PHP コードのパフォーマンス最適化のスキルを説明するPHP 関数 preg_match_all 要件の例: それぞれ biuuu、biuuu_2、biuuu_3、php self-study network、php self-study network 2、php self-study network 3などの各DIV要素のIDとコンテンツを抽出します(いくつかの一般的なWebサイト取得方法)分析: 文字列は単純な HTML 要素であり、各 DIV 要素は ID とコンテンツに対応しており、独立しています。まず、次のように DIV 内の ID 値とコンテンツを抽出する方法を検討します。ネットワークを調査し、他の同様の要素を照合します。 DIV から 2 つの値、つまり 2 つの一致する式を取り出す必要があります。最初の式は ID 値 (biuuu) と一致するために使用され、2 番目の式は ID (php self) の内容と一致するために使用されます。 -study network) を使用すると、前の要素は次の形式になります: < div id="(biuuu)"< /div> ="( 式 1)">(式 2)< /div> 次のステップは、上の括弧を使用して、各式の内容を一致させる方法です。 ID には文字、数字、またはアンダースコアを使用できます。その場合は、次のように角括弧を使用すると簡単になります。 式 1: [a-zA-Z0-9_]+ (大文字と小文字、数字、アンダースコアを一致させることを意味します) ID の内容は任意の文字にすることができますが、これら 2 つの文字が一致すると、後で使用されるすべての DIV が一致するため、一致式 2 についてはどうでしょうか。したがって、これらは次のように 2 文字で始まる要素、つまり < または > の文字と一致しないものを除外する必要があります。このように、PHP 関数 preg_match_all には一致する部分式が実装されますが、式が一致する必要があります。 式: / "(式 1)">(式 2)/二重引用符 "" と / が必要であることに注意してください。エスケープ文字を使用してエスケープし、次のように最初の 2 つの式を入力します。 "([a-z0-9_]+)">/< div id="([ a-z0-9_]+) ">([^<>]+)< /div>/ これは、各 DIV 要素の ID 値と内容に一致する正規表現を実装し、preg_match_all 関数を使用します。次のようにテストします。 $html =

php 自習ネットワーク< div id="biuuu_2"> id="biuuu_3">php自習ネットワーク3>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/865250.html技術記事 PHP正規表現よく使う関数、php正規表現関数1. preg_match() 関数のプロトタイプ: int preg_match (string $pattern, string $content [, array $matches]) preg_match () function in...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。