У меня есть пользовательский ввод, в котором некоторые теги разрешены внутри квадратных скобок. Я уже написал шаблон регулярного выражения, чтобы найти и проверить, что находится внутри скобок.
В поле ввода пользователя, открывающем-скобку, ([)можно экранировать обратной косой чертой, также обратную косую черту можно экранировать другой обратной косой чертой (\). Мне нужно посмотреть -за шаблоном sub-, чтобы избежать нечетного количества последовательных обратных косых черт перед открытием -скобки.
На данный момент я должен иметь дело с чем-то вроде этого:
(?<!\\)(?:\\\\)*\[(?<inside brackets>.*?)]
Это работает нормально, но проблема в том, что этот код все еще соответствует возможным парам последовательных обратных косых черт перед квадратными скобками (, даже если они скрыты)и посмотрите-behind просто проверяет, есть ли еще одна обратная косая черта, добавленная к парам (или непосредственно к открывающей-скобке). Мне нужно избегать их всех внутри группы просмотра-за спиной, если это возможно.
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