Bir alt dizeyi ilk ve son arasında [ ] eşleştirmek için şunu kullanabilirsiniz:
\[.*\] # Including open/close brackets
\[(.*)\] # Excluding open/close brackets (using a capturing group)
(?<=\[).*(?=\]) # Excluding open/close brackets (using lookarounds)
Bir normal ifade demosu ve bir normal ifade demosu # 2'ye bakın .
En yakın köşeli ayraçlar arasındaki dizeleri eşleştirmek için aşağıdaki ifadeleri kullanın :
Parantez dahil:
\[[^][]*]- PCRE, Python re/ regex, .NET, Golang, POSIX (grep, sed, bash)
\[[^\][]*]- ECMAScript (JavaScript, C ++ std::regex, VBA RegExp)
\[[^\]\[]*] - Java normal ifadesi
\[[^\]\[]*\] - Onigmo (Ruby, her yerde parantezlerden kaçmayı gerektirir)
Parantez hariç:
(?<=\[)[^][]*(?=])- PCRE, Python re/ regex, .NET (C #, vb.), ICU (R stringr), JGSoft Yazılımı
\[([^][]*)]- Bash , Golang - köşeli parantezler arasındaki içeriği bir çift çıkışsız parantez ile yakalayın , ayrıca aşağıya bakın
\[([^\][]*)]- JavaScript , C ++std::regex , VBARegExp
(?<=\[)[^\]\[]*(?=]) - Java normal ifadesi
(?<=\[)[^\]\[]*(?=\]) - Onigmo (Ruby, her yerde parantezlerden kaçmayı gerektirir)
NOT : *0 veya daha fazla karakterle +eşleşir, sonuçtaki listede / dizide boş dize eşleşmelerini önlemek için 1 veya daha fazla eşleşmeyi kullanın .
Her iki arama desteği mevcut olduğunda, yukarıdaki çözümler ön / arka açma / kapama braketini dışlamak için bunlara güvenir. Aksi takdirde, yakalama gruplarına güvenin (bazı dillerde en yaygın çözümlere bağlantılar sağlanmıştır).
İç içe parantezleri eşleştirmeniz gerekiyorsa , düzenli parantezler iş parçacığını eşleştirmek için Düzenli ifadedeki çözümleri görebilir ve gerekli işlevselliği elde etmek için yuvarlak parantezleri köşeli parantezlerle değiştirebilirsiniz. İçeriği erişmek için açma / kapama braketi hariç tutulduğunda yakalama gruplarını kullanmalısınız:
[^]]açgözlü olmayandan (?) daha hızlıdır ve aynı zamanda açgözlü olmayanları desteklemeyen regex tatları ile de çalışır. Ancak, açgözlü olmayan daha hoş görünüyor.