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

  • Canal de arkyoru

    Canal de ark

    18 Ocak 2007
  • megablueblaster

    megablueblas

    23 HAZİRAN 2006
  • MysteryGuitarMan

    MysteryGuita

    16 HAZİRAN 2006