正規表現マッチのタイトル

正規表現マッチのタイトル

 

範囲アドレス:HTTP://**.**.***.**:8010 /再上述のid = 1 /?

 

<?PHPの    

$キー = 'フラグ{********************************} 

$レギュラー = するpreg_match( "/zkaq.*key.{2,9}:\/.*\/(key*key)/i"は、トリム$ _GET [ "ID"])、$マッチ)。  

場合レギュラー$ ){    

  死ぬ( 'キー'。$キーを)。  

}

 

コードの説明:

するpreg_match正規表現の文字列にマッチ

正規マッチサブストリング最初のマッチングは、戻り見つからない 0を返す、見つかった1

トリム($ _ GET [ "ID "])  受け入れるために IDを見逃し文字列パラメータを

 

 

 

(レギュラー$){場合( 'キー:' $キーを。)死にます。}

IF(1){}行います。

(0){}があれば実行されません。

ダイ(); メッセージを出力し、現在のスクリプトを終了します。

これは、関数で の出口() のエイリアス機能。

 

問題解決のアイデア:する必要があると、文字列が正規表現にマッチする文字列はと行に戻ります

 

正規表現は説明しました:

/ /で書くためにPHPの正規表現の間。

:任意の単一文字を超えて改行\ nをマッチングに加えて。

* :直前の部分正規表現に0回以上一致します。

N {、} M:mおよびnは負でない整数であり、ここでn <= mです。マッチと少なくともn回m回まで一致します。例えば、「O {1,3}」「fooood」に一致する過去3 O中。コンマと二つの数字の間にスペースなしということに注意してください。

\:次の文字は特殊文字、またはリテラル、またはバック参照、または8進数のエスケープまたはとしてマークされています。例えば、「N-」「n」の文字に一致します。「\ n」が改行にマッチ。シーケンス「\\」マッチは「\」、および「\(」「(​​」一致

I:タグは大文字と小文字を区別しない指定します。

  

/zkaq.*key.{2,9}:\/.*\/(key*key)/i

この正規表現を説明スプリット

1。

/zkaq.*/は:0-背後「zkaq」を示す改行\ n(nは非負の整数)を除く任意の単一の文字の数N。

zkaq(私は文字に従うことができないの背後に理解することができます)

2。

/ キー 2.9 / :.「は示し{} キー」2戻って改行\ nを除く任意の単一の文字の9。

keyhello(私は、「できるキーが後2-9文字を追加しました」)

3。

/:\ /.* \ / /:最初の":"。 "*"コロン文字については、 "\ /"スラッシュのための"/"訳で、続い0-を表すの改行\ nに加えて、Nを(N非負整数)外部任意の一文字。

// (何も言わないように、私は文字を追加することはできません)

4。

/(キー * キー)/「KE」および「示しキー 0-間が」N文字「Y」(Nは非負整数です)。

keykey(私は文字を追加することはできません)

の組み合わせ:

zkaqkeyhello:// keykey

Unicodeは、このをコードします: 

3A%zkaqkeyhello // KeyKey

 

 

おすすめ

転載: www.cnblogs.com/sx2960/p/11371898.html