Ben cevap Superuser bu soruyu bir çıkış grepping ederken kullanılan Düzenli ifadelerin tür ilişkin bir şeydi.
Verdiğim cevap şuydu:
tail -f log | grep "some_string.*some_string"
Ve sonra, cevabımın üç yorumunda @Bob şunu yazdı:
.*
açgözlüdür ve istediğinizden daha fazlasını yakalayabilir..*?
genellikle daha iyidir.
Sonra bu,
?
Bir değiştirici*
yerine açgözlü varsayılan o tembel hale. PCRE varsayımı.
Google'a gittim PCRE
, ancak cevabımda bunun önemi nedir?
ve son olarak,
Ayrıca bu bir kabuk glob değil, normal ifade (varsayılan olarak POSIX normal ifade yapıyor grep) olduğunu belirtmek gerekir.
Sadece Regex'in ne olduğunu ve grep komutunda çok temel kullanımını biliyorum. Bu 3 yorumdan hiçbirini alamadım ve şu soruları aklımda tutuyorum:
- Kullanımındaki farklar nelerdir
.*?
vs..*
? - Hangisi daha iyi ve hangi koşullar altında? Lütfen örnekler veriniz.
Ayrıca yorumları anlamak yararlı olurdu, eğer kimse olabilir
GÜNCELLEME: Regex'in Shell Globs'tan farkı nedir? @Kusalananda sağlanan bu bağlantıyı onun yorumunda.
NOT: Gerekirse , bağlama başvurmadan önce cevaplamadan önce lütfen bu soruya verdiğim cevabı okuyun .
.*
vs .*?
sorunu. "Normal ifadeler ve kabuk globları arasındaki fark" sorusu bu sitede zaten ele alınmıştır.