ホームページ >バックエンド開発 >PHPチュートリアル >phpの文字列と正規表現の詳しい解説、phpの正規表現の詳しい解説_PHPチュートリアル
1.文字列型の特徴
1. PHP は弱い型指定言語であり、他のデータ型は通常、文字列関数の操作に直接適用できます。
リーリー2. 文字列は文字の集合である「配列」として使用できます。
リーリーただし、文字列は実際の配列ではないため、配列関数は使用できません。たとえば、count($str) は文字列の長さを返しません。 PHP エンジンは文字と配列を区別できないため、あいまいさが生じます。 PHP 4 以降、角括弧の代わりに中括弧が使用されるようになりました。
リーリー3. ダブルクォート変数分析
PHP では、文字列が二重引用符または区切り文字で定義されている場合、その中の変数が解析されます。
リーリー2.文字列出力関数
3. よく使用される文字列フォーマット関数
追記: PHP の文字列処理関数のほとんどはソース文字列を変更せず、新しい文字列を返します
4. 正規表現
正規表現は、文字列の一致パターンを記述し、文字列の一致、検索、置換、および分離の操作を特定の関数で実行します。これは、アトム、メタ文字、パターン修飾子の 3 つの部分で構成されるテキストです。
PHP には、PCRE と POSIX という 2 つの通常の処理関数ライブラリのセットがあります。前者は preg_ 接頭辞で名前が付けられ、Perl と互換性があります。後者は ereg_ 接頭辞で名前が付けられます。両者の機能は似ていますが、PCRE の効率がわずかに高くなります。
Perl言語対応の正規表現処理機能:
1. 文法
1.1 区切り文字: Perl 互換の通常関数でパターンを使用する場合、パターンに区切り文字を追加する必要があります。文字、数字、バックスラッシュ () を除く任意の文字を区切り文字として使用できます
リーリー1.2 アトム: アトムには、文字や数字などの通常の文字、スペースやキャリッジ リターンなどの非印刷文字、引用符、*、+ などの特殊文字やメタ文字が含まれます。これらは " でエスケープする必要があります。 "; カスタム アトム テーブル ([apj]、[a-z] など)、一般的な文字タイプ (d、D など)。
リーリー1.3 メタキャラクター: 正規表現を作成するために使用される特別な意味を持つ文字。 Perl は、*、+、? などのさまざまなメタ文字を使用して一致を検索できます。 .一般的なメタキャラクターは次のとおりです
1.4 パターン修飾子: 通常の区切り文字に加えて、照合、置換などの通常の機能を拡張するために使用されます。
2.Perl互換の正規表現関数
2.1 preg_match(string pattern,string subject[,arraymatches]): 文字列の検索と一致に使用されます。パラメータの説明:
pattern は通常のパターン、subject は処理が必要な文字列、オプションの match は pattern の各サブパターンの一致結果を保存するために使用されます、matches[0] はコンテンツ全体の一致パターンを保存します、matches[1] は内容を保存しますパターンは最初の括弧内の内容と一致します。以下同様です。
リーリー結果
preg_match_all() は preg_match() 関数に似ていますが、前者は文字列の最後まで一致するのに対し、後者は最初の一致後に一致を停止する点が異なります。
2.2 preg_grep(string pattern, array iput): 配列内の要素を照合し、通常のパターンに一致する配列ユニットを返します。パラメータの説明:
pattern は通常のパターンであり、input は一致する必要がある配列です。
リーリー2.3 preg_replace(混合パターン、混合置換、混合主語[,int制限]): 文字列置換。説明:
この関数は、件名内のパターンと一致するものを検索し、置換に置き換えます。制限は、一致の数、つまり置換の数を制限するために使用されます。
リーリー2.4 preg_split(string pattern,string subject[,int limit[,int flags]]): 文字列を分割します。説明:
関数は配列を返します。配列要素には、パターンに一致する境界で区切られたサブジェクト内の文字列が含まれます。limit の意味については、2.3 を参照してください。フラグの意味については、ドキュメントを参照してください。
リーリー
$str='{"a":1234567890,"b":"u","誕生日":"2000-01-01","性別":"1","所在地":"123456 ","login_ip":"123.123.123.123","login_time":1234567890,"ID":"1234567","sign":"0bcbdea54d1f2c3c758EB5D2AE124 "} ';
$ user_id_id = ""; (IF (preg_match_all (' | "id":"(\S+?)"|', $str, $reg))
{
$user_id=$reg[1][0];
}
echo "ユーザーID : ".$user_id;
?>
出力結果:
ユーザーIDは: 1234567
$str = str_replace("","