私はすでに.*
それがゼロ以上の任意の文字を意味することを理解していますが、誰かが.*
次の作品でどのように、そしてそれが何と一致するかを説明できますか?
.*([a-m/]*).*
.*([a-m/]+).*
.*?([a-m/]*).*
私はすでに.*
それがゼロ以上の任意の文字を意味することを理解していますが、誰かが.*
次の作品でどのように、そしてそれが何と一致するかを説明できますか?
.*([a-m/]*).*
.*([a-m/]+).*
.*?([a-m/]*).*
ドットはここに何でも入れることができることを意味し、スターは少なくとも 0 回を意味するため.*
、空の文字列を含む任意の文字列を受け入れます。
それぞれのケースは異なります:
.*([a-m\/]*).*
は存在する必要がないため、最初.*
の文字列はおそらく文字列全体に一致し、最初の文字列は貪欲で最初に表示されます。[a-m/]
*
.*([a-m\/]+).*
最初.*
の文字列は、一致する最後の文字までの文字列全体に一致します。[a-m/]
必要なのは 1 つだけであり、最初の文字列*
は貪欲で最初に来るからです。
.*?([a-m\/]*).*
最初.*?
の文字列は に一致する最初の文字まで一致します。これは貪欲ではない[a-m/]
ためです。*?
[a-m/]*
*
.*
あなたの例の .* の機能は、含まれている式が何かで囲まれている (または何もない) ことを確認することです。ドットは任意の文字を表し、アスタリスクは前の文字を任意の回数繰り返すことができる (またはまったく繰り返さない) ことを示します。
.* は、「任意の文字、任意の回数の繰り返し」を意味します。