2012-03-26 5 views

答えて

14

この文字列リテラル:

"\\[.+?\\]" 

はこの文字列を意味します

\[.+?\] 

だから、この式:

Pattern.compile("\\[.+?\\]"); 

は、この正規表現を意味します

\[.+?\] 

を意味し、「[」という文字を意味し、その後に1つ以上の文字「—」、好ましくはできるだけ「—」、「]」を意味する。 (.は「改行以外の文字」を意味します; +?は「私が言ったことの1つ以上、できればできるだけ少ない」という意味です。)したがって、正規表現は[____]と一致します。____は、少なくとも1文字の長さである限り、改行。 ____(通常)の最初の文字を除いて]を含まない場合は、

PatternとJavaでの正規表現の詳細については、the documentation for the Pattern classを参照してください。

+1

非常に良い説明。特に、正規表現が '[] ...]と一致するコーナーケースは重要です。 –

+0

素晴らしい、ありがとう! – user1291453

+0

@ user1291453:ようこそ! – ruakh

関連する問題