正規表現
PHP には 2 セットの正規表現関数ライブラリがあります。これら 2 つの機能は似ていますが、実行効率が若干異なります。
1 つのセットは PCRE (Perl 互換正規表現) ライブラリによって提供されます。接頭辞「preg_」が付いた名前の関数
POSIX (Portable Operating System Interface of Unix) 拡張機能 (PHP のデフォルト) によって提供されるセット。接頭辞「ereg_」が付いた名前の関数を使用します。
PHP では、正規表現には 3 つの関数があります:
マッチング。文字列から情報を抽出するためによく使用されます。
一致するテキストを新しいテキストに置き換えます。
文字列を小さな情報のセットに分割します。
正規表現には少なくとも 1 つのアトムが含まれます。
原子(英語の文字などの普通の文字)metaCharacters(特別な機能を備えた文字)
パターン補正文字(正規表現セマンティクスの変更)、a〜z、0〜9。
(ABC) などのパターン単位は、複数の原子から構成される大きな原子として理解できます。
[ABC]などのアトミックテーブル。
再利用されたパターン単位 (例: \1)
一般的なエスケープ文字 (例: d、D、w)
エスケープ メタ文字 (例: *,.)
POSIX 正規表現
POSIX 正規表現は、Unix のポータブル オペレーティング システム インターフェイスと呼ばれます。 UNIX ポータブル オペレーティング システム実装インターフェイスを意味します。
POSIX 正規表現の構築は、数式の作成と同じです。つまり、さまざまなメタキャラクターと演算子を使用して小さな式を組み合わせて、より大きな式を作成します。
メタ文字
メタ文字は、正規表現を構築するために使用される特別な意味を持つ文字です。メタキャラクター自体を正規表現に含める場合は、その前に「" を追加してエスケープする必要があります。
メタキャラクターの説明
* 前のアトムと 0 回、1 回以上一致します。
+ 1 回以上一致します。前のアトム
? その前のアトムと 0 回または 1 回一致します
| [1-9]|[a-b]|[A-Z] などの 2 つ以上の選択と一致します それらのいずれかが true として一致します
^ 一致する文字文字列の先頭 (例: abscd===^afdgfgf) は文字列の末尾のアトム (例: dasdsv===v$,
[]) と一致し、角括弧内の任意のアトムと一致します。例: s===[dsadas]
[^] 角括弧内のアトムを除く任意の文字と一致します。たとえば、aaaa===[dddd]
{m} は、直前のアトムがちょうど m 回出現することを意味します。 ,n} は、前の原子が少なくとも m 回出現することを意味し、少なくとも n 回出現することを意味します (n > m)
{m,} は、前の原子が少なくとも m 回出現することを意味します
() 全体で原子を表します
。改行を除く任意の文字と一致します
^ $ これら 2 つの元の文字を合わせて区切り文字と呼ばれます
abd===^abc$ この方法でのみ一致できます
パターン マッチングの順序
メタ文字の順序 説明
1 () パターン単位
2? * +{} 繰り返しマッチング
3 ^$ 境界制限 4 egi_replace()
split() および spliti()
ereg() および eregi() ereg() 文字列マッチング関数、 eregi() はサイズを無視したバージョンです。 ereg() 関数
文法形式: if (!ereg('^[^./][^/]*$ ', $userfile))//出力形式が一致しません die
{
die('これは不正なファイルですname!');
}
ereg_replace() および eregi_replace (大文字と小文字を無視) replace
string eregi_replace (" 正規表現", "置換対象文字", "置換対象")
文法形式: $string = "これはtest";
echo str_replace(" is", " was", $string);
echo ereg_replace( "( )is", "\1was", $string);\1 は最初の全体を継承します
echo ereg_replace("( ( )is)", "\2was", $string);\2 は 2 番目のものを継承します 全体的に
split() と spliti (大文字と小文字を無視) は正規表現を使用して文字列を配列に分割します
リスト: いくつかの変数を配列内の値
構文形式: $date = "04/30/1973";
list($month, $day, $year) = split ('[/.-]', $date);/ /3 つの変数の対応する形式をリストします//どの形式で誰に分割するか? echo "Month : $month; Day: $day; Year: $year
n";
出力結果 Month: 04;日: 30; 年: 1973
http://www.bkjia.com/PHPjc/319085.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/319085.html