SORU
4 EYLÜL 2008, PERŞEMBE


Normal ifadenin bir parçası büyük / küçük harf duyarlı yapabilir misin?

Tüm bir düzenli ifade büyük / küçük harf duyarlı hale örnekleri çok gördüm. Merak ettiğim şey ifade sadece bir parçası büyük / küçük harf duyarlı olmak zorunda değilsiniz.

Örneğin, diyelim ki böyle bir dize var ki:

fooFOOfOoFoOBARBARbarbarbAr

Eğer tüm tekrarlarını maç için ne yapmalıyım? "" ne olursa olsun durum ama ben sadece büyük harf maç için istiyorum "BAR"? foo

İdeal çözüm düzenli tatlar arasında çalışan bir şey olurdu, ama bu kadar güzel dile özgü olanlar (Teşekkürler Espo) işitme ilgileniyorum

Edit

Bağlantı Espo sağlanan çok yardımcı oldu. İfade içinde değiştiriciler ve kapama konusunda iyi bir örnek var.

Yapmacık benim örneğin, bunun gibi bir şey yapabilirim:

(?i)foo*(?-i)|BAR

maçın büyük / küçük harf duyarlı maçın sadece foo bölümü yapar.

Javascript, Python, ve birkaç Diğerleri (Espo olarak bahsedilen) dışında en düzenli uygulamalarında çalışır gibiydi.

Büyük olanlar hakkında (Perl, PHP, .merak ettiğim NET) tüm satır içi modu değişiklikleri desteklemek.

CEVAP
4 EYLÜL 2008, PERŞEMBE


Perl düzenli ifade kısmını yapmanıza olanak sağlar büyük / küçük harf duyarlı kullanarak (?ben:) desen değiştirici.

Modern düzenli bir lezzet düzenli ifade sadece bir kısmına değiştiriciler uygulamak için izin verir. Sen değiştirici eklerseniz (?ism) düzenli ortasında, değiştirici tek değiştirici sağındaki düzenli bir bölümü için geçerlidir. Bir eksi işareti ile onları koyarak modu kapatabilirsiniz. Eksi işaretinden sonra tüm modları devre dışı bırakılır. E. g. (?ben-sm) davasında duyarsızlık döner ve tek satır modu ve çoklu satır modu kapatır.

Tüm düzenli tatlar bu destek. JavaScript ve Python için tüm normal ifade tüm mod değiştiriciler uygulanır. Destek vermiyorlar (?-ismx) bir seçeneği kapatmak beri sözdizimi, mod değiştirici tüm düzenli ifadeler için geçerli zaman anlamsızdır. Tüm seçenekler varsayılan olarak kapalıdır.

Hızlı kullanıyorsanız düzenli lezzet değiştirici modu nasıl işleyeceğini test edebilirsiniz. Normal ifade (?i)te(?-ı)st test ve TEst eşleşmesi gerekir, ama teST ya da TEST değil.

Source

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EmbarkToHeaven

    EmbarkToHeav

    3 EYLÜL 2007
  • paulandstorm

    paulandstorm

    4 EYLÜL 2006
  • theKGB65

    theKGB65

    24 Aralık 2007