Щоб відповідати підрядку між першою [
та останньою ]
, ви можете використовувати
\[.*\] # Including open/close brackets
\[(.*)\] # Excluding open/close brackets (using a capturing group)
(?<=\[).*(?=\]) # Excluding open/close brackets (using lookarounds)
Перегляньте демонстраційну виразку та демо-версію №2 .
Використовуйте такі вирази, щоб відповідати рядки між найближчими квадратними дужками :
Включаючи дужки:
\[[^][]*]
- PCRE, Python re
/ regex
, .NET, Golang, POSIX (grep, sed, bash)
\[[^\][]*]
- ECMAScript (JavaScript, C ++ std::regex
, VBA RegExp
)
\[[^\]\[]*]
- Java regex
\[[^\]\[]*\]
- Onigmo (Ruby, потрібно знімати дужки скрізь)
Без дужок:
(?<=\[)[^][]*(?=])
- PCRE, Python re
/ regex
, .NET (C # тощо), ICU (Rstringr
), програмне забезпечення JGSoft
\[([^][]*)]
- Баш , Голанг - захоплення вміст між квадратними дужками із парою неекранованих дужок, також дивіться нижче
\[([^\][]*)]
- JavaScript , C ++std::regex
, VBARegExp
(?<=\[)[^\]\[]*(?=])
- Java regex
(?<=\[)[^\]\[]*(?=\])
- Onigmo (Ruby, потрібно знімати дужки скрізь)
ПРИМІТКА : *
відповідає 0 або більше символів, використовуйте+
для поєднання 1 або більше, щоб уникнути порожніх рядкових збігів у отриманому списку / масиві.
Кожного разу, коли доступні обидві підказки, наведені вище рішення покладаються на них, щоб виключити провідну / задню відкриту / закриту дужку. В іншому випадку покладайтеся на захоплення груп (посилання на найбільш поширені рішення на деяких мовах надано).
Якщо вам потрібно зіставити вкладені дужки , ви можете побачити рішення в виразі "Регулярний", щоб відповідати збалансованим круглим дужкам і замінити круглі дужки на квадратні, щоб отримати необхідну функціональність. Ви повинні використовувати групи захоплення для доступу до вмісту з виключеною дужкою відкриття / закриття:
[^]]
швидше, ніж не жадібний (?
), а також працює з ароматами регулярного вираження, які не підтримують ненаситні Однак нежитливо виглядає приємніше.