ホームページ  >  記事  >  バックエンド開発  >  正規表現の基本構文に関するチュートリアル

正規表現の基本構文に関するチュートリアル

巴扎黑
巴扎黑オリジナル
2017-09-21 11:46:151450ブラウズ

以下のエディターは、正規表現の基本文法の応用的な詳細な説明をお届けします (必読の記事)。編集者はこれがとても良いものだと思ったので、皆さんの参考として今から共有します。エディターをフォローして一緒に見てみましょう

1. 正規表現の基本文法

2つの特殊記号「^」と「$」。それらの機能は、それぞれ文字列の始まりと終わりを示すことです。例: " String;

"^abc$": "abc" で始まり "abc" で終わる文字列を表します - はは、"abc" 自体だけがあります;

"notice": "notice" を含む任意の文字列を表します。

最後の例と同様に、2 つの特殊文字を使用しない場合は、検索する文字列が検索文字列のいずれかの部分にあることを示しており、その文字列を先頭に配置しているわけではありません。

他の記号には「*」、「+」、「?」があり、これらは 1 つの文字または一連の文字が繰り返し現れる回数を表します。それらはそれぞれ、「なしまたはそれ以上」、「1 回またはそれ以上」、および「なしまたは 1 回」を意味します。以下にいくつかの例を示します:

"ab*": 文字列に a の後に 0 個または複数の b が続くことを示します。 ("a", "ab", "abbb",...);

"ab+": 文字列に少なくとも 1 つ以上の b が続くことを示します。 a の後に 0 個または 1 個の b が続く;

"a?b+$": 文字列の末尾に 0 個または 1 個の a の後に 1 個または複数個の b が続くことを意味します。

中括弧で囲まれた範囲を使用して、繰り返しの範囲を示すこともできます。

"ab{2}": 文字列に a の後に 2 つの b が続くことを示します ("abb")。

"ab{2,}": 文字列の後に少なくとも 2 つの b が続くことを示します。

"ab{3,5}": 文字列に a の後に 3 ~ 5 個の b が続くことを示します。

範囲の下限を指定する必要があることに注意してください (例: "{,2}" の代わりに "{0,2}")。また、「*」、「+」、「?」が「{0,}」、「{1,}」、「{0,1}」と同等であることに気づいたかもしれません。

「or」演算を意味する '|' もあります。

"hi|hello": 文字列に "hi" または "hello" があることを意味します。

"(b|cd)ef": 「bef」または「cdef」を意味します;

「(a|b)*c」: 「a」と「b」の後に「c」が続く文字列を表します。'

"a.[0-9]": 文字列に「a」の後に任意の文字と数字が続くことを示します。

"^.{3}$": 任意の 3 文字の文字列を示します。長さは 3 文字です);

角括弧は、文字列内の特定の位置に特定の文字が出現できることを示します:

"[ab]": 文字列に "a" または "b" があることを示します (同等to "a|b");

"[a-d]": 文字列に小文字の「a」から「d」のいずれかが含まれていることを示します (「a|b|c|d」または「[abcd ]」と同等) ;

"^[a-zA-Z]": 文字で始まる文字列を表します。

"[0-9]%": パーセント記号の前に 1 桁の数字を表します。 -zA-Z0-9]$": 文字列がコンマで終わり、その後に文字または数字が続くことを示します。

角括弧内で「^」を使用して、不要な文字が角括弧内の最初の文字であることを示すこともできます。 (例: "%[^a-zA-Z]%" は、2 つのパーセント記号の間に文字を含めないことを意味します)。

これをそのまま表現するには、これらの文字「^.$()|*+?{」の前にシフト文字 '' を追加する必要があります。

角括弧内ではエスケープ文字は必要ないことに注意してください。

2. 正規表現の検証は、テキスト ボックスの入力文字の種類を制御します

1. 数字と英語のみを入力できます:

2. 数値のみを入力できます:

3. 全角のみ文字を入力できます:

4. 漢字のみ入力可能です:

3. 正規表現の応用例をよく解説

//全て数字で構成されているか検証

/^[0 -9 ]{1,20}$/

^ は、開始文字が直後のルールと一致する必要があることを意味します ^

$ は、開始文字が $

[ ] の直前のルールと一致する必要があることを意味します

はオプションの文字セットです

[0-9] は、必要な文字範囲が 0 ~ 9 であることを意味します。


{1,20} は、数値文字列の有効な長さが 1 ~ 20、つまり、文字の出現数の範囲であることを意味します。 [0-9]は1~20回です。

/^ と $/ は、文字列内の部分文字列のみを一致させるのではなく、文字列全体が定義されたルールに完全に一致する必要があることを示すためにペアで使用する必要があります。

//ログイン名の確認: 数字、「_」、「.」を含む文字で始まる文字列は 5 ~ 20 個のみ入力できます

/^[a-zA-Z]{1}([ a-zA -Z0-9]|[._]){4,19}$/

^[a-zA-Z]{1} は、最初の文字が文字である必要があることを意味します。

([a-zA-Z0-9]|[._]){4,19} は、(前の式の直後にあるため) 2 桁目から開始することを意味し、長さは 4 ~ 9 桁の文字列です。大文字と小文字、数字、または特殊文字セット [._] で構成する必要があります。

//ユーザー名確認: 英字で始まる文字列は1~30文字のみ入力可能

/^[a-zA-Z]{1,30}$/

//パスワード確認: 6~20のみ入力可能文字、数字、アンダースコア

/^(w){6,20}$/


w: 文字、数字、または下線文字の一致に使用されます

//通常の電話番号と FAX 番号を確認します: OK "+ で始まります" または数字。"-" と " "を含めることができます

/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ] ) {1,12})+$/

d: 0 から 9 までの数値と一致するために使用されます。

"?" メタ文字は、次のような文字列と一致するように、その先頭のオブジェクトがターゲット オブジェクト

内に 0 回または 1 回出現する必要があると規定します。 +123 -999 999; +123 999 999 など

//URL を確認します

/^http[s]://.+ $/ または / ^http[s]{0,1}://.{1,n}$/ (URL文字列の長さが length(“https://”) + n であることを示します)

/: 文字を示します/」。

すべての文字のセットを表します。


+ は、1 から正の無限大までの {1,} に相当します。

4. 正規表現の応用(共通部分)

"^d+$" //非負の整数(正の整数+0)

"^[0-9]*[1-9] [0-9]*$" //正の整数

"^((-d+)|(0+))$" //非正の整数(負の整数+0)

"^-[0-9 ] *[1-9][0-9]*$" //負の整数

"^-?d+$" //整数

"^d+(.d+)?$" //非負の浮動小数点数値 (正の浮動小数点 + 0)

"^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1- 9][ 0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正の浮動小数点数

"^( (-d+( .d+)?)|(0+(.0+)?))$" //非正の浮動小数点数 (負の浮動小数点数 + 0)

"^(-(([0- 9]+.[0- 9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)| ([0-9]* [1-9][0-9]*)))$" //負の浮動小数点数

"^(-?d+)(.d+)?$" //浮動小数点数

"^[A-Za- z]+$" //英字26文字からなる文字列

"^[A-Z]+$" //英大文字26文字からなる文字列

"^[a-z] +$" / /英小文字26文字からなる文字列

"^[A-Za-z0-9]+$" //数字と英文字26文字からなる文字列

"^w+$" // A数字、26 文字の英字、またはアンダースコアで構成される文字列

"^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$" // メールアドレス

"^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$" //url

/^( d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1- 9]{ 1}))|(3[0|1]))$/ // 年-月-日

/^((0([1-9]{1}))|(1[1| 2]) )/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // 月 /日/年

"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1, 3}. )|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" // エミル

"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)? //電話番号

" ^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[ 0-5 ]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d| 25[0 -5])$" //IPアドレス

^([0-9A-F]{2})(-[0-9A-F]{2}){5}$ //MACアドレス正規表現

^[-+]?d+(.d+)?$ //値型の正規表現🎜

以上が正規表現の基本構文に関するチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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