2011-01-26 24 views

答えて

10

この特定部分(?:gif|jpe?g|png)は、(gif|jpe?g|png)とほぼ同じものです。

ここでの違いは、最初のものが括弧内のグループを「取得」しないことです。言い換えれば、試合を見ると、最初の例のものは特別なグループには含まれません。

通常、アイテムをカッコで囲むと、「キャプチャグループ」と呼ばれます。言い換えれば、正規表現とテキストをマッチングさせた結果を見ると、かっこ内のものは後で調べるために 'グループ'に入れられます。 (?:stuff)を使用すると、カッコ内のものは正規表現でグループ化されますが、キャプチャグループとはみなされません。

これは、あなたが画像の束のファイル名を一致させたい場合は、ボット名以上を捕捉しない役に立つことができます:

この正規表現に対してファイルを照合すると、ファイル名だけがキャプチャされます
"([^.]\.)(?:gif|png|tiff)" 

。ファイル拡張子は、キャプチャグループに含まれていないため、表示されません。

+0

+1私の答えは削除されています。これは、リンクを追加するだけで役立ちます。http://www.regular-expressions.info/brackets.html – Vojta

+1

@Vojita、あなたの答えを保つことをお勧めします。 2つの良いものを傷つけることはありません。 – jjnguy

関連する問題