jQuery kaynak kodunda bu normal ifadede geldi: oldukça karışıktı nedenBu normal ifade kısmı ne ekler?
...
rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
...
merak ediyordum. İkinci kısmına arkasında nedenle özellikle ilgilendiğim: Ben biraz araştırma yaptım ama
(?:.*? rv:([\w.]+))?
Ben normal ifadenin bu kısmı ekler anlamaya olamazdı.
(?:) to match but not capture
.*? any amount of any character
rv: something literal
([\w.]+) one or more word characters or a dot
? appear 0 or 1 time
Özellikle bu son
?
bana çok mantıklı değil. İkinci bölüm, o ikinci bölüm tarafından tanımlandığı gibi bir alt-tabaka varsa ya da mevcut değilse eşleşir. Bazı deneme ile ve düzenli ifade sadece farklı görünmüyor hatası:
/(mozilla)/
birisi normal ifadenin ikinci bölümü yapmak gerekiyordu ne ışık tutabilecek misiniz? Ne kısıtlıyor; /(mozilla)/
veya diğer yoldan geçen dizi ne başarısız?
Ben kendi kullanıcı aracısı dizesi koyarak Mozilla taklit bazı tarayıcılar etrafında çalışmak şüpheli. –
Biraz daha bağlam sağlayabilir misiniz? JQuery eklentisinin bu kısmı mıydı? Eğer öyleyse, hangisi? Bu kodun nerede göründüğünün bilinmesi, yazara/ışığa/yazara ışık tutabildi ve yazar bu belirli deseni istediği için, bu yüzden de desen ne yapıyordu. – jefflunt
@Rafe Kettler: Seni doğru anladığımdan emin değilim. Regexp, sahtekarları önlemek için ne yapar? – pimvdb