Используя регулярное выражение, учитывая следующий текст, как я могу совместить содержимое между квадратными скобками, но только если он не пуст?Соответствие между открытыми и закрывающимися скобками, если не пустым?
{
"key": [
],
"match": [
1,
2,
3,
4
]
}
/:\s*\[([^\]\[]+)\]/g
: Это моя попытка, и в то время как он соответствует ничего внутри скобок, включая пробелы (желаемому) Я не могу работать, как соответствовать только в скобках, по существу пустой массив (то есть) не только пробельные.
В приведенном выше тексте я хочу совместить содержимое второго ключа, но не пробел первого ключа.
Очень важно, что я захвачу белое пространство так, как я хочу, чтобы сохранить форматирование, но я не хочу, чтобы захватить содержимое между скобками, если его нет или только пробельные/перевода строки и т.д.
Вы можете видеть и играть с моим регулярным выражением здесь: https://regex101.com/r/iN9cD5/3
СПАСИБО.
Отлично, я знал, что это должно быть что-то вроде взгляда вперед, просто не мог обернуть мою голову вокруг синтаксиса! Спасибо! – Camsoft
BTW, аромат регулярного выражения - это PHP, вы можете избавиться от некоторых экранирующих символов: [': \ s * \ [(?! \ S *]) ([^] [] +)]'] (https: // regex101.com/r/bE0jM5/2). –
Отлично, вкус, который я использую, это PCRE, так что это будет немного легче читать. – Camsoft