電子書籍の厳選無料作品が豊富!

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

^([^ ]+) +[^ ]+.+S3.lzh

A 回答 (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 とかもマッチします。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!