ホームページ >バックエンド開発 >PHPチュートリアル >PHP 正規表現、php 正規表現_PHP チュートリアル

PHP 正規表現、php 正規表現_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:55:001068ブラウズ

PHP 正規表現、PHP 正規表現

キャラクター

手順

次の文字を特殊文字、テキスト、後方参照、または 8 進エスケープとしてマークします。たとえば、「n」は文字「n」と一致します。 「n」は改行文字に一致します。シーケンス「\」は「」と一致し、「(」は「(」と一致します。

^

入力文字列の先頭と一致します。 RegExp オブジェクトの Multiline プロパティが設定されている場合、^ は "n" または "r" の後の位置にも一致します。

$

入力文字列の末尾と一致します。 RegExp オブジェクトの Multiline プロパティが設定されている場合、$ は "n" または "r" の前の位置にも一致します。

*

直前の文字または部分式と 0 回以上一致します。たとえば、zo* は「z」と「zoo」に一致します。 * {0,} に相当します。

+

先行する文字または部分式と 1 回以上一致します。たとえば、「zo+」は「zo」と「zoo」に一致しますが、「z」には一致しません。 + は {1,} と同等です。

?

先行する文字または部分式と 0 回または 1 回一致します。たとえば、「do(es)?」は「do」または「does」の「do」と一致します。 ? {0,1} に相当します。

{n}

n は負ではない整数です。 n 回正確に一致します。たとえば、「o{2}」は「Bob」の「o」とは一致しませんが、「food」の両方の「o」には一致します。

{n,}

n は負ではない整数です。少なくとも n 回一致します。たとえば、「o{2,}」は「Bob」の「o」とは一致しませんが、「foooood」のすべての「o」と一致します。 「o{1,}」は「o+」と同等です。 「o{0,}」は「o*」と同等です。

{n,m}

M と n は非負の整数であり、n

?

この文字が他の修飾子 (*、+、?、{n}、{n,}、{n,m}) の直後にある場合、一致パターンは「非貪欲」です。 「非貪欲」パターンは検索される可能な限り短い文字列に一致しますが、デフォルトの「貪欲」パターンは検索される可能な限り長い文字列に一致します。たとえば、文字列「oooo」では、「o+?」は 1 つの「o」のみに一致しますが、「o+」はすべての「o」に一致します。

.

「n」を除く任意の 1 文字と一致します。 「n」を含む任意の文字と一致するには、「[sS]」などのパターンを使用します。

(パターン)

パターンを照合し、一致する部分式をキャプチャします。キャプチャされた一致は、$0 ~ $9 属性を使用して、結果の「一致」コレクションから取得できます。括弧文字 ( ) と一致させるには、「(」または「)」を使用します。

(?:パターン)

はパターンに一致しますが、その一致の部分式をキャプチャしません。つまり、非キャプチャ一致であり、後で使用するために一致を保存しません。これは、パターン部分を「または」文字 (|) と組み合わせるときに便利です。たとえば、 'industr(?:y|ies) は 'industry|industries' よりも経済的な式です。

(?=パターン)

文字列一致パターンの先頭にある文字列と一致する前方検索を実行する部分式。これは非キャプチャ一致、つまり、後で使用するためにキャプチャできない一致です。たとえば、「Windows (?=95|98|NT|2000)」は、「Windows 2000」の「Windows」とは一致しますが、「Windows 3.1」の「Windows」とは一致しません。予測先読みは文字を占有しません。つまり、一致が発生した後、予測先読みを構成する文字の後ではなく、前の一致の直後に次の一致が検索されます。

(?!パターン)

pattern に一致する文字列の先頭にない検索文字列に一致する後方検索を実行する部分式。これは非キャプチャ一致、つまり、後で使用するためにキャプチャできない一致です。たとえば、「Windows (?!95|98|NT|2000)」は、「Windows 3.1」の「Windows」と一致しますが、「Windows 2000」の「Windows」とは一致しません。予測先読みは文字を占有しません。つまり、一致が発生した後、予測先読みを構成する文字の後ではなく、前の一致の直後に次の一致が検索されます。

x|y

x または y と一致します。たとえば、「z|food」は「z」または「food」と一致します。 '(z|f)ood' は、「zood」または「food」と一致します。

[xyz]

キャラクターセット。に含まれる任意の文字と一致します。たとえば、「[abc]」は「plain」の「a」と一致します。

[^xyz]

文字セットを反転します。含まれていない文字と一致します。たとえば、「[^abc]」は「plain」の「p」と一致します。

[a-z]

文字範囲。指定された範囲内の任意の文字と一致します。たとえば、「[a-z]」は「a」から「z」の範囲内の任意の小文字と一致します。

[^a-z]

範囲文字を反転します。指定された範囲内にない任意の文字と一致します。たとえば、「[^a-z]」は、「a」から「z」の範囲にない任意の文字に一致します。

b

単語の境界、つまり単語とスペースの間の位置を照合します。たとえば、「erb」は「never」の「er」と一致しますが、「verb」の「er」とは一致しません。

B

非単語境界のマッチング。 「erB」は「動詞」の「er」と一致しますが、「never」の「er」とは一致しません。

cx

xで示される制御文字と一致します。たとえば、cM は Control-M またはキャリッジ リターンと一致します。 x の値は、A ~ Z または a ~ z の間である必要があります。そうでない場合、c は文字「c」そのものであるとみなされます。

d

数字文字のマッチング。 [0-9]に相当します。

D

数字以外の文字のマッチング。 [^0-9] と同等。

f

フォームブレイクマッチング。 x0c および cL に相当します。

改行一致。 x0a および cJ に相当します。

r

は復帰文字と一致します。 x0d および cM に相当します。

s

スペース、タブ、フォーム フィードなどを含む任意の空白文字と一致します。 【fnrtv】に相当。

S

空白以外の任意の文字と一致します。 [^ fnrtv] に相当します。

t

タブマッチング。 x09 および cI に相当します。

v

垂直タブのマッチング。 x0b および cK に相当します。

w

アンダースコアを含むあらゆるタイプの文字と一致します。 「[A-Za-z0-9_]」に相当します。

W

単語以外の文字と一致します。 「[^A-Za-z0-9_]」と同等。

xn

は n と一致します。n は 16 進数のエスケープ コードです。 16 進数のエスケープ コードは、正確に 2 桁の長さである必要があります。たとえば、「x41」は「A」と一致します。 「x041」は「x04」と「1」に相当します。正規表現で ASCII コードを使用できるようにします。

番号

は num と一致します。ここで、num は正の整数です。一致をキャプチャするための後方参照。たとえば、「(.)1」は、連続する 2 つの同一の文字と一致します。

8 進エスケープ コードまたは後方参照を識別します。 n の前に少なくとも n 個のキャプチャ部分式がある場合、n は後方参照になります。それ以外の場合、n が 8 進数 (0 ~ 7) の場合、n は 8 進数のエスケープ コードになります。

んん

8 進エスケープ コードまたは後方参照を識別します。 nm の前に少なくとも nm 個のキャプチャ部分式がある場合、nm は後方参照になります。 nm の前に少なくとも n 個のキャプチャがある場合、n は後方参照であり、その後に文字 m が続きます。前の条件がどちらも存在しない場合、nm は 8 進数値 nm と一致します。ここで、n と m は 8 進数 (0 ~ 7) です。

nml

nが8進数(0~3)、mとlが8進数(0~7)の場合、8進数のエスケープコードnmlと一致します。

うん

n と一致します。n は 4 桁の 16 進数で表される Unicode 文字です。たとえば、u00A9 は著作権記号 (©) に一致します

/i 忽略大小写
/g 全文查找出现的全一致字
/m 多行查找
/gi 全文查找、忽略大小写
/ig 全文查找、忽略大小写

1. 转义字符
b , B , c , d , D , f , n , r , s , S , t , v , w , W , x , u
2。 选择和分组相关
| , ( , ) , [ , ] , ?: , ?! , ?=
3. 限定符
* , + , ? , { , } , *? , +? , ??
4. 定位置符
b , B , ^ , $
5. その他のシンボル
g , i , m ,

正規表現は、Web サイトを構築するときによく使用されます。ここでは、参照および変更のみを目的としていくつかの説明と例を示します。 "^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+$" //数字、26 文字の英字、またはアンダースコア
△で構成される文字列。/^(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})$/ //月/日/年
△ "^(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 アドレス

△。 中国語の文字に一致する正規表現: [u4e00-u9fa5]

△。 空白行に一致する正規表現: [^x00-xff]
△。 [s| ]*r
△。HTML タグに一致する正規表現: /<(.*)>*|<(.*) />/
△。先頭と末尾のスペースに一致する式: (^s*)|(s*$)
△。電子メール アドレスに一致する正規表現: w+([-+.]w+)*@w+( [-.]w+)*。 w+([-.]w+)*
△ URL に一致する正規表現:
^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$

△。一致するアカウントは合法ですか (文字で始まり、5 ~ 16 バイトが許可され、英数字のアンダースコアが許可されます):
^[a-zA-Z][a-zA-Z0-9_]{4,15}$

△。一致する国内電話番号: (d{3}-|d{4}-)?( d{8}|d{7})
△。テンセント QQ 番号: ^[1-9]*[1-9][0-9]*$

Web フォームのテキスト ボックスの入力内容を制限するには正規表現を使用します:

△ 正規表現を使用して中国語の入力のみを制限します:
onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')"

△ 入力を数値のみに制限するには、正規表現を使用します。 onkeyup="value=value.replace(/[^d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d] /g,''))"
△。正規表現を使用して、入力を数字と英語のみに制限します:

onkeyup="value=value.replace(/[W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/)ぐ、”))"

△. 情報内の SQL ステートメントを抽出します: ^(select|drop|delete|create|update|insert).*$
△. 情報内のネットワーク リンクを抽出します: (h|H)(r| R) (e|E)(f|F) *= *('|")?(w|\|/|.)+('|"| *|>)?
△メッセージ内のアドレス: w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
△ 情報内の画像リンクを抽出します。 |S)( r|R)(c|C) *= *('|")?(w|\|/|.)+('|"| *|>)?
△を抽出します。情報内の IP アドレス (d+).(d+).(d+).(d+)
△。情報内の中国の携帯電話番号を抽出します: (86)*0*13d{9}
△。情報内の中国の固定番号を抽出します 電話番号: ((d{3,4})|d{3,4}-|s)?d{8}
△ 情報内の中国の電話番号を抽出します (携帯電話と固定電話を含む):

((d{3,4})|d{3,4}-|s)?d{7,14}
△ 情報内の中国の郵便番号を抽出します: [1-9]{1 } (d+){5}
△ 情報内の浮動小数点数 (つまり、小数) を抽出します: (-?d*).?d+
△ 情報内の任意の数値を抽出します。 )(.d+)?

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/993272.html技術記事 PHP 正規表現、PHP 正規表現文字の説明 次の文字を特殊文字、テキスト、後方参照、または 8 進エスケープ文字としてマークします。たとえば、n は文字 n と一致します。 n は改行と一致します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。