人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

正規表現で /^[0-9]+$/ と /^[0-9]/ の違いはなんですか?

●質問者: rizo
●カテゴリ:コンピュータ
✍キーワード:正規表現
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● ootatmt
●24ポイント

/^[0-9]+$/

これは、0?9の数字が初めにあって、それが終わりまで($)繰り返される(+)場合です。

つまり全部が数字って言うことです。


/^[0-9]/

これは、先頭が数字であればマッチします。それに続く文字は何であってもかまいません。

◎質問者からの返答

回答ありがとうございます。

違いがよくわかりました。


2 ● bsavas
●15ポイント

/^[0-9]+$/ の方が文字列の中で先頭の方に一致するものを意味します.

◎質問者からの返答

回答ありがとうございます


3 ● ootatmt
●35ポイント ベストアンサー

http://www.komonet.ne.jp/~perl/chap7.htm

もうちょっと詳しく、


どちらも ^[0-9] までは同じですね。

^ は、先頭を表します。

[0-9] は 0?9 までの文字ということで、つまり数字です。

つまり^[0-9]で、文字の先頭が数字のものにマッチします。


/^[0-9]/

こちらは、これだけですので文字の先頭が数字であるもの全てにマッチします。

数字1文字のものや、先頭が数字でその後に任意の文字が続くものにマッチするということです。


/^[0-9]+$/

こちらは、+$ がついていますね。

+ はその前にあるもの(この場合は数字)が1回以上繰り返す場合にマッチします。

つまり数字が続くものですね。

$ は文字列の終わりにマッチします。

+$ で、その前にあるものが終わりまで繰り返すことを意味します。

全体としては数字で始まり、2文字目も数字で、最後まで数字ということです。

つまり2文字以上の数字だけの文字列にマッチするということになります。

◎質問者からの返答

非常に丁寧な補足ありがとうございます。

助かります!


4 ● birdie-brain
●22ポイント

/^[0-9]+$/

行頭(^)から数字([0-9])が1文字以上繰り返し(+)行末($)に至る

つまり、1文字以上の数字のみで構成された行にマッチします。

/^[0-9]/

行頭(^)が数字([0-9])

つまり、先頭が数字で始まる行にマッチします。

◎質問者からの返答

回答ありがとうございます。

よく理解できました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ