Soruma basit bir soru geliyor ve normal ifadeden kaçışla ilgili. Bir düzenli ifadede /
eğik çizgi kaçmak zorunda mı? Ve bunu yapmaya nasıl devam edersiniz?Düzenli bir ifadede bir eğik çizgi kaçışı
cevap
Hangi içeriğe/dileğe? Bazı diller, desen sınırlayıcısı olarak /
'u kullanır, bu nedenle, hangi dil/içeriğe bağlı olarak, bundan kurtulmanız gerekir. Önünde bir ters eğik çizgi koyup kaçarsınız: \/
Bazı diller (PHP gibi) için sınırlayıcı olarak diğer karakterleri kullanabilir ve bundan kurtulmak zorunda kalmazsınız. Ancak her dilde AFAIK, /
'un tek özel önemi, belirlenen desen sınırlayıcı olabilir.
Noob sorusunu affet ama bu konudaki (tam olarak anladığım RegEx - Perl Regex ile ilgili) "desen sınırlayıcısı", bir (dizin) yol olarak yorumlanması gerektiği anlamına geliyor. Dosya adında bir harf karakteri yerine. Bu varsayımı düzelttim mi? Perl Best Practices için –
Eğer sınırlayıcı/ise, kaçmanız gerekecektir.
Eğer (maç için) mektup m ile preceed eğer ters eğik çizgi \
kullanın veya, yani m#.\d#
yerine Perl" /.\d/
farklı bir ayırıcı seçebilirsiniz, neredeyse başka herhangi bir özel karakter/düzenli ifade sınırlayıcı değiştirebilir ;"
Perl'de alternatif sınırlayıcılar seçebilirsiniz. m//
ile sınırlı değilsiniz. m{}
gibi başka birini seçebilirsiniz. Sonra kaçmak gerekli değildir. Nitekim, "Perl Best Practices" daki Damian Conway, m{}
'un kullanılması gereken tek alternatif sınırlayıcı olduğunu ve bunun Perl :: Critic (CPAN'da) tarafından güçlendirildiğini iddia etmektedir. Farklı sınırlayıcı karakterleri kullanarak uzaklaşırken, //
ve {}
, daha sonra deşifre edebilecek en açık gözüküyor. Ancak, bu seçimlerden herhangi biri çok fazla kaçışla sonuçlanırsa, hangisinin en iyi şekilde okunabilir olduğunu seçin. Yaygın örnekler m(...)
, m[...]
ve m!...!
'dur.
+1 ve Perl :: Critic –
Bir örnek verebilir misiniz? Bende şu var: 'perl -pi -e 's/chdir. */Chdir $ ROBOT_PATH/g" startup_scripts/supervisord.conf' Ve eğik çizgi ile çakışıyor. – CMCDragonkai
Düzenli ifadelerle bir yer değiştirirken (s yerine) bir 's' kullandığınızı unutmayın. http://www.perlfect.com/articles/regex.shtml – Mashmagar
Hangi dil/düzenli ifade uygulaması kullanıyorsunuz? – Gumbo
Regex için perl kullanıyorum – Zerobu