ホームページ php教程 php手册 PHPの定例学習例を詳しく解説

PHPの定例学習例を詳しく解説

Jun 13, 2016 pm 12:27 PM
abc php the による マッチ そして 勉強 始まり 通常 比較する 終わり 説明する

"^The": "The" で始まる文字列と一致します。

"of death$": "of speech" で終わる文字列と一致します。 "^abc$": で始まる文字列と一致します。 abc と abc で終わる実際には、abc のみが一致します。

: Notice を含む文字列と一致します。前述の 2 つの文字を使用するとわかります。 (最後の例)、これは、テスト対象の文字列内のどこにでもパターン (正規表現) を出現させることができ、両側にロックしていないことを意味します。

いくつかの文字「*」、「 」、および「?」もあり、これらはそれぞれ「0 個以上」、「1 個」を表します。以下にいくつかの例を示します:

"ab*": 文字列 a と 0 個以上の b ("a"、"ab"、"abbb" など) に一致します。 .);

"ab ": 少なくとも 1 つの b ("ab"、"abbb" など);

"ab?" と一致します。 one b;

"a?b $": 1 または 0 a と 1 つ以上の b で終わる文字列と一致します。

"ab{2}": a の後に 2 つの b (それ以上) ("abb") が一致します。

"ab{2,}": 少なくとも 2 つの b( "abb"、"abbbb" など);

"ab{3,5}": 2-5 b("abbb" 、 "abbbb" または "abbbbb")。 🎜> 常に指定する必要があることにも注意してください (つまり、「{,2}」ではなく「{0,2}」)。「*」、「 」、および「?」も注意する必要があります。は、それぞれ次の 3 つの範囲アノテーション「{0,}」、「{1,}」、および「{0,1}」と同じです。

ここで、括弧内に特定の数の文字を入力します。例:

"a(bc)*": a の後に 0 または 1 つの "bc" が続くものと一致します。 "a(bc){1,5}": 1 ~ 5 "bc."

OR 演算に相当する文字 '│' もあります:

"hi│hello" : 「hi」または「hello」を含む文字列と一致します。

「(b│cd)ef」: 「bef」または「cdef」を含む文字列と一致します。 *c": 複数の (0 を含む) a または b とそれに続く c の文字列を含む文字列と一致します。

ドット ('.') はすべての単一文字を表します:

"a.[0-9]": a の後に文字が続き、その後に数字が続きます (このような文字列を含む文字列が一致します。この括弧は将来省略されます)

"^.{3 }$": 3 文字で終わります。角かっこで囲まれた内容は 1 文字のみに一致します。

"[ab]": 1 つの a または b ("a│b" と同じ) に一致します。

"[a-d]": 'a' から 'd' までの 1 文字に一致します ("a│b│c│d" および "[abcd" ]" と同じです。効果は同じです);

"^[a-zA-Z]": 文字で始まる文字列と一致します

"[0-9]%": x % string
",[a-zA-Z0-9]$": カンマで終わる文字列と数字または文字に一致します

不要なものを入れることもできます 文字は括弧内に記載されています'^' を括弧の先頭として使用するだけです (つまり、"%[^a-zA-Z]%" は、

の文字以外の 2 つのパーセント記号と一致します)。説明できるようにするために、特別な意味を持つ文字として「^.[$()│* ?{」を使用する場合は、これらの文字の前に''を追加する必要があり、php3 での使用は避けるべきです。たとえば、パターンの先頭は、正規表現 "($│?[0-9] " は ereg("(\$│?[0-9] ", $str) と呼ばれる必要があります (php4 がどうかは不明)。同じ)

括弧内の文字はこの規則の例外であることを忘れないでください。括弧内では、('') を含むすべての特殊文字はその特殊なプロパティを失います (つまり、"[* ?{} .]" は、これらの文字を含む文字列に一致します)。 また、regx マニュアルには次のように記載されています。 「-」が含まれている場合は、範囲の先頭または末尾、または範囲の 2 番目の終点 (つまり、[a-d-0-9] の中央) に配置するのが最善です。「-」は有効です。

完全を期すために、照合順序、文字クラス、および等価クラスについて説明する必要がありますが、これらの側面についてはあまり詳しく説明したくありません。また、これらについては次の記事では説明しません。詳細については、正規表現の man ページを参照してください。

通貨金額の入力に一致するパターンを構築する方法

さて、ここで使用するものを説明します。何か役に立つことをしてください。入力情報がお金を表す数字であるかどうかを確認するためのマッチング パターンを構築します。金額を表すには 4 つの方法があると思います: "10000.00" と "10,000.00"、または小数点なしの "10000" と "10,000" では、この一致パターンの構築を開始しましょう:

。 [ 1-9][0-9]*$

これは、すべての変数が 0 以外の数値で始まる必要があることを意味しますが、これは 1 つの「0」ではテストに合格できないことも意味します。解決策:

^(0│[1-9][0-9]*)$

「0 と 0 で始まらない数字のみが一致する」ようにすることもできます。負の数値の前:

^(0│-?[1-9][0-9]*)$

これは次のとおりです: 「0 または 0 で始まる数値には、マイナス記号の前の数字。" さて、それでは、あまり厳密ではなく、0 から始まるようにしましょう。コインを表すときにマイナス記号は必要ないので、マイナス記号を削除しましょう。次に、Match を使用するパターンを指定します。小数部:

^[0-9] (.[0-9] )?$

これは、一致する文字列が少なくとも 1 つのアラビア数字で始まる必要があることを意味します。上記のパターンの "10." は一致しません。一致するのは "10" と "10.2" だけです (理由はわかりますか)

(.[0-9]{2) })?$

上で、小数点以下 2 桁でなければならないと指定しましたが、これが厳しすぎると思われる場合は、次のように変更できます。 ] (.[0- 9]{1,2})?$

これにより、小数点の後に 1 文字または 2 文字が許可され、読みやすくするために (3 桁ごとに) カンマが追加され、それを表現できるようになります。このように:

^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$

空白文字列の入力を許可したい場合は、プラス記号 ' ' を乗算記号 '*' に置き換えることができることを忘れないでください (なぜですか?)。また、バックスラッシュ ' ' が原因となる可能性があることも忘れないでください。 PHP 文字列のエラー (非常に一般的なエラー) を確認できたので、すべてのカンマ str_replace(",", "", $money) を削除して、型を double として扱い、数学的な計算を行うことができます。

電子メールをチェックするための正規表現の構築

電子メール アドレスを検証する方法について引き続き説明します。 完全な電子メール アドレスには 3 つの部分があります。 「@」すべて)、「@」、サーバー名(残り) ユーザー名には、大文字と小文字、アラビア数字、ピリオド(「.」)、マイナス記号(「-」)、およびアンダースコア(')を含めることができます。 _') サーバー名もこのルールに従いますが、

では、ユーザー名の先頭と末尾にピリオドを使用することはできません。また、サーバーにも同じことが当てはまります。間に少なくとも 2 つのピリオドが必要です。次に、ユーザー名に一致するパターンを記述する方法を見てみましょう:

^[_a-zA-Z0-9-] $

ピリオドの存在はまだ許可されていません:

^[_a-zA-Z0-9-] (.[_a-zA-Z0-9-] )*$

上記は、「少なくとも 1 つの正規文字 (. 予期せぬ文字を除く) で始まり、その後にドットで始まる 0 個以上の文字列が続きます。」

簡単にするために、代わりに eregi() を使用できます。 ereg().eregi () は大文字と小文字を区別しないため、「a-z」と「A-Z」の 2 つの範囲を指定する必要はありません。指定する必要があるのは 1 つだけです:

^[_a-z0- 9-] (.[ _a-z0-9-] )*$

次のサーバー名は同じですが、アンダースコアを削除する必要があります:

^[a-z0-9 -] (.[a-z0- 9-] )*$

これで、「@」を使用して 2 つの部分を接続するだけです:

^[_a-z0-9-] (.[_a-z0-9- ] )*@[a-z0-9-] (.[a-z0-9-] )*$

これは完全な電子メール認証マッチング モードです。 call

eregi('^[_a-z0-9-] (.[_a-z0-9-] )*@[a-z0-9-] (.[a-z0-9-] )*$ ',$eamil )

メールかどうかを取得できます。

正規表現のその他の使用法

文字列の抽出

ereg() と eregi() には、正規表現を使用して文字列の一部を抽出できる機能があります (具体的な使用方法についてはマニュアルをお読みください)。たとえば、パス/URL からファイル名を抽出したいとします。必要なのは次のコードです:

ereg("([^\/]*)$" , $ pathOrUrl, $regs);
echo $regs[1];

高度な置換

ereg_replace() と eregi_replace() も非常に便利です。記号はカンマに置き換えられます:

ereg_replace("[ nrt] ", ",",trim($str));

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

See all articles