ALL (veya bunların herhangi biri) içeren desenleri bulmak için ack
ile nasıl arama yapılır? ack - birden fazla model için arama (mantıksal AND)
HERHANGİ (OR) gibi kolaydır: VE (ALL) yazmak için
ack 'pattern1|pattern2|pattern3'
ama nasıl? Örneğin. Aşağıdaki kod nasıl yazılır:
if($line =~ /pattern1/ && $line =~ /pattern2/ && $line =~ /pattern3/) {
say $line
}
ack
?
Veya daha doğrusu, logical and
ile bir regex oluşturmak mümkün mü?
evet o kolaylaştırabilirsiniz; bu 'grep' ile mümkündür) çok. Bir ack koşusunda mümkün değil mi? - Örneğin. Perl-regexler bir şeyi 'AND' olarak bilmiyor mu? – cajwine
@cajwine: Düzenli ifadeler mantıksal değil, desen yapar. Biraz pedantic olmak için: bir regex içinde '|', "alternatifi", "değil" anlamına gelir. Bir "ve" için hiçbir meta karakter yoktur, çünkü bu örtük varsayılantır. Örneğin. "ab" deseni, "a" karakterini ve "b" karakterini (bu sırayla ve birbirine bitişik) eşleştirmeyi gerektirir. Birden fazla desen eşleştirmek, birden fazla eşleşme gerektirir (amfetamachine cevabında olduğu gibi) veya kalıpları tek bir tanede birleştirir (ikegami'nin cevabında olduğu gibi). –