Регулярное выражение для текста в двойных квадратных скобках, но НЕ между дефисами - PullRequest
0 голосов
/ 07 марта 2019

Я не могу найти регулярное выражение, которое подходит для моей ситуации.Мне нужно получить весь текст в двойных квадратных скобках, но это НЕ между дефисами.Например:

[[abc]] would get abc
[[-abc]] would get -abc 
[[abc-]] would get abc-
[[-abc-]] would get nothing

Я смог почти получить то, что хочу:

\[\[(\-(.*?)\-)\]\]

, но это выражение возвращает текст в двойных квадратных скобках И, который также находится между дефисами(Мне нужно, чтобы это не было между дефисами)

Любая помощь, пожалуйста?

1 Ответ

1 голос
/ 07 марта 2019

Этот шаблон работает для меня:

(?!\[{2}\-[^(\-|\s)]*\-\]{2})\[{2}([^(?:\]{2})]*)\]{2}

Соответствовать шаблону, который вы не хотите ([[-foobar-]]), довольно легко, поэтому в этом решении используется отрицательный вид.вперед, чтобы убедиться, что следующее не не соответствует этому шаблону, затем захватывает все в двойных скобках как группу захвата.

Проверьте это здесь: https://regex101.com/r/pxbwKo/2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...