この意味はどういう意味なんでしょうか?
正規表現の意味を教えてください。
preg_match -- 正規表現検索を行う
preg_match(検索パターン, 検索対象文字列)
検索パターンの^は行頭、\dは0-9の数字、+は直前の1つ以上の繰り返し、$は行末です。
$testは検索対象の文字列。
preg_match()はカッコ内のpatternがマッチした回数を返します。
ということで、$test文字列に数字が一つでも含まれれば1、含まれなければ0を返します。
正規表現は、幾つかの文字列を一つの形式で表現するための表現方法です。
"Regular Expression" #1
http://www.sixnine.net/regexp/regexp1.html
正規表現メモ
^は文字列の始まり。
\dは数字。[0-9]と同じ。
+は直前の正規表現の1以上の繰り返し。
$は文字列の終わり。
全体として,$testが数字だけで構成されているか否かを判別しています。
やっている内容は
ctype_digit($test)
とほぼ同じです。
ctype_digitの場合,$testが数字以外のものを含むと何も返さないのに対し,
ご質問の方法の場合は0を返すという違いはありますけれど。
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k09.htm
こんな方法もあるんですね。
ありがとうございます。
preg_matchはperlに準拠した正規表現であり、条件が一致すると1を返します。
不一致の場合は0を返します。
preg_match("/^\d+$/",$test)
の場合、$testには文字列が入っているはずです。/で囲まれた部分が正規表現で、
^ は行頭
\d は0-9までの数字
+ は一回以上の繰り返し
$ は行末を示します。
つまり上記正規表現は0-9までの文字列のみで構成された行がある場合一致して1を返します。そうでなければ0を返します。
【例】
0123 -> 1を返す。
012x -> 最後のxが条件と一致しないため0を返す。
ありがとうございます。