6
は、ページランクのソースコードから取ら:Pattern.compile( "\ [。+?\]");このステートメントで
Pattern.compile("\\[.+?\\]");
パターンは何を意味するのでしょうか?私はそれを勉強しようとしました、それは2つのスラッシュが単一のスラッシュを意味すると言いますが、.+?
は何ですか?
は、ページランクのソースコードから取ら:Pattern.compile( "\ [。+?\]");このステートメントで
Pattern.compile("\\[.+?\\]");
パターンは何を意味するのでしょうか?私はそれを勉強しようとしました、それは2つのスラッシュが単一のスラッシュを意味すると言いますが、.+?
は何ですか?
この文字列リテラル:
"\\[.+?\\]"
はこの文字列を意味します
\[.+?\]
だから、この式:
Pattern.compile("\\[.+?\\]");
は、この正規表現を意味します
\[.+?\]
を意味し、「[
」という文字を意味し、その後に1つ以上の文字「—」、好ましくはできるだけ「—」、「]
」を意味する。 (.
は「改行以外の文字」を意味します; +?
は「私が言ったことの1つ以上、できればできるだけ少ない」という意味です。)したがって、正規表現は[____]
と一致します。____
は、少なくとも1文字の長さである限り、改行。 ____
が(通常)の最初の文字を除いて]
を含まない場合は、
Pattern
とJavaでの正規表現の詳細については、the documentation for the Pattern
classを参照してください。
非常に良い説明。特に、正規表現が '[] ...]と一致するコーナーケースは重要です。 –
素晴らしい、ありがとう! – user1291453
@ user1291453:ようこそ! – ruakh