• ベストアンサー

正規表現について

リンク集を作ってみようと試みています。 URLチェックののさいに ereg("^http://+($|[a-zA-Z0-9_~\.\-\/])+$)というのを本から探し使ってみたのですが、あまり意味がわからなくて、教えてください。 +でつないである表現のうち、一番最後の+$の部分が何を意味しているのかがわかりません。どういう意味なのでしょうか? それと、ハイフンの入っているアドレスを登録しようとすると登録ができません。そこでいろいろいじって[a-zA-Z0-9_~\.\/\-]に変更したら、うまくいったのですが、理由がわかりません。これでよかったのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.1

> 一番最後の+$の部分が何を意味しているのか +と$は別物で+$ではありません。 +は前の文字クラスの1 回以上のパターン繰り返しを意味します。 で、$は前の文字クラスが末尾に使われている事を意味します。 この例で言えば、[a-zA-Z0-9_~\.\-\/]が一回以上繰り返され、さらに[a-zA-Z0-9_~\.\-\/]のどれかで終わっている という事を意味します。 もっとくだけると、a~z または A~Z または ~ または . または- または / の文字のいずれかが、最低一回以上繰り返され、更にその文字のどれかで終わっている という意味です。 正規表現に関しては詳しく勉強したければ、本を一冊勉強する事をお勧めします。 奥が深いですよ~

sana0930
質問者

補足

ありがとうございます。+は1回以上という意味なんですね。 凄く勉強になります。 本を1冊とありますが、何かオススメの本がありましたら、教えてください。

その他の回答 (2)

  • kuny2005
  • ベストアンサー率67% (21/31)
回答No.3

定番ですが。。 オライリーの動物本とかはどうでしょうか? http://www.oreilly.co.jp/books/4873111307/

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.2

>本を1冊とありますが、何かオススメの本がありましたら、教えてください。 すいません(^^; 今回問われた内容は凄く簡単だったので、答えられましたが、私も正規表現をマスターしているわけではありません。 複雑な正規表現を書くときは、Webを調べながら書きます。 ですので、お薦め出来る本はありません。 が、しかし、どんな本がいいかはWebで検索すればいくらでも出てくると思いますよ。 と、今気づいたのですが、質問者さんは、私がもう一つ答えている質問の質問者さんと同一人物だったんですね(^^; どうでもいい事ですが今気づいたので…(笑)

関連するQ&A

専門家に質問してみよう