Мне бы хотелось соответствовать четвертому элементу [d .-] [], который может содержать любой символ (буквы, цифры, знаки пунктуации и т. Д.) В первой паре скобок, но вторая пара скобок остается пустой
string.match(/\[[^\]]*\]\[\]/)
должен сделать это.
Чтобы разбить его,
\[
соответствует буквальной квадратной скобке слева,
[^\]]*
соответствует любому количеству символов, кроме правой квадратной скобки,
\]
соответствует буквальной правой квадратной скобке, а
\[\]
соответствует последовательности двух символов []
, квадратных скобкахмежду ними ничего нет.
Чтобы ответить на ваш вопрос о жадности, вы можете сделать жадное совпадение [^]+
нежадным, добавив знак вопроса: [^]+?
.Вы должны знать, что [^]
не работает в IE.Для соответствия любому кодовому модулю UTF-16 я обычно использую [\s\S]
, который немного более многословен, но работает во всех браузерах.