• ベストアンサー

正規表現で分かりません

例えば以下のようなパターンの正規表現チェックがあるのですが、 どのようなものを意味しているか分かりません。 教えていただけますでしょうか。 よろしくお願いします。 以下の情報は調べたのですが。 +(プラス)・・・直前の1文字の1回以上の繰り返しを表現 . (ピリオド)・・・改行コード以外の1文字にマッチするか否か [ ](大括弧)・・・囲みの中に書かれた任意の1文字にマッチするか否か ^([^ ]+) +[^ ]+.+S3.lzh

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

正規表現は、ツール毎に異なります。 何で使うものかをはっきりさせないと、まったく違う意味になる可能性もあります。 例えば、こんな風に http://www.kt.rim.or.jp/~kbk/regex/regex.html 調べる場合にも使う場合にも、何用の正規表現かをはっきりさせましょう。 以下、よくある実装として。 > +(プラス)・・・直前の1文字の1回以上の繰り返しを表現 「1文字」ではなく、直前の(ひとまとまりの)パターンが1回以上 です。 たとえば [^ ]+ では [^ ] [^ ][^ ] [^ ][^ ][^ ] (以下略) のように [^ ] を1つ以上繰り返したパターンのどれかに一致する、という意味です。 > [ ](大括弧)・・・囲みの中に書かれた任意の1文字にマッチするか否か もう一つ、 [^ ]などと、^が最初に付くと、 []で指定した文字以外、という意味になります。 その他、先のURLなどを参考にすれば ^ 先頭から ([^ ]+) 空白で無い文字が1つ以上。()でくくってあるので、後から参照する等の使い方ができる + その後に空白が1つ以上 [^ ]+ その後に空白で無い文字が1つ以上 .+ その後に任意の文字が1つ以上 S3 そのまま「S3」 . 任意の一文字( そのまま . に一致させたいと予想される) lzh そのまま「lzh」 となります。 おそらく、 空白を含むlzhファイルから、その最初の空白までの単語を抜き出したいのかな、と予想されます。 ただ、 S3Xlzh とか S3.lzhXA とかもマッチします。

関連するQ&A

専門家に質問してみよう