SORU
21 EYLÜL 2009, PAZARTESİ


Bir dize bulmak için düzenli İfade ayırıcılar HARİÇ tutarak iki karakter arasında bulunan,

Bir süre baktım, ama muhtemelen "" doğru kelimeleri ile, yani burada. soruyorum Google edemem Bir dize iki ayırıcıları, ayırıcılar kendilerini dönmeden arasında yer alan karakterler bir dizi ayıklamak gerekiyor. C# Düzenli ifade nesnesi ile yapmaya çalışıyorum.

Basit bir örnek yararlı olmalıdır:

Hedef: köşeli parantez dönmeden arasındaki dize ayıklamak kendilerini.

Temel dize:Bu test string [] daha fazla veya daha az

Aşağıdaki reg kullanıyorum. ex.

\[.*?\]

Maç "[daha fazla ya da daha az]". Sadece almam lazım "Aşağı Yukarı", parantez olmadan. Bunu yapmak mümkün mü? Çok teşekkürler.

CEVAP
21 EYLÜL 2009, PAZARTESİ


Kolay:

(?<=\[)(.*?)(?=\])

Teknik olarak bu lookaheads ve geriye ilerleme kullanıyor. Lookahead and Lookbehind Zero-Width Assertions bkz. Desen oluşur:

  • [(geriye ilerleme) yakalanır . öncesinde
  • olmayan açgözlü yakalanan bir grup. İlk durak] non-açgözlü ve
  • (ilerleme) yakalanan bir izledi.

Alternatif olarak sadece köşeli parantez arasında. yakalayabilirsiniz

\[(.*?)\]

ve bütün maç yerine ilk yakalanan grup dönün.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Gigawipf

    Gigawipf

    18 ŞUBAT 2010
  • Just So

    Just So

    3 HAZİRAN 2007
  • Video-Tutorials.Net

    Video-Tutori

    15 Mart 2011