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.