У меня есть пользовательский ввод, где некоторые теги разрешены в квадратных скобках. Я уже написал шаблон регулярных выражений, чтобы найти и проверить, что находится в скобках.
В поле ввода пользователя открывающая скобка может ([) быть экранирована с помощью обратной косой черты, а также может быть экранирована обратной косой чертой (\). Мне нужен вспомогательный шаблон, чтобы избежать нечетного числа последовательных обратных косых черт перед открывающей скобкой.
На данный момент я должен иметь дело с чем-то вроде этого:
(?<!\\)(?:\\\\)*\[(?<inside brackets>.*?)]
Работает нормально, но проблема в том, что этот код по-прежнему совпадает с возможными парами последовательных обратных косых черт перед скобками (даже если они скрыты), а просмотр только проверяет, есть ли еще один обратный слеш, добавленный к парам (или непосредственно к открытию -скобка). Я должен избегать их всех в группе наблюдения, если это возможно.
Пример:
my [test] string is ok
my \[test] string is wrong
my \\[test] string is ok
my \\\[test] string is wrong
my \\\\[test] string is ok
my \\\\\[test] string is wrong
...
etc
Я работаю с PHP PCRE