私はすでに.*それがゼロ以上の任意の文字を意味することを理解していますが、誰かが.*次の作品でどのように、そしてそれが何と一致するかを説明できますか?
.*([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/]**.*
あなたの例の .* の機能は、含まれている式が何かで囲まれている (または何もない) ことを確認することです。ドットは任意の文字を表し、アスタリスクは前の文字を任意の回数繰り返すことができる (またはまったく繰り返さない) ことを示します。
.* は、「任意の文字、任意の回数の繰り返し」を意味します。