Чтобы найти регулярное выражение для того, что вы хотите, потребуется поиск переменной длины, который доступен только для очень ограниченных языков (таких как C # и PyPi в Python), поэтому вам придется согласиться с менее чем идеальным.Вы можете использовать это регулярное выражение для соответствия foo
, которое не находится в фигурных скобках, если у вас нет фигурных вложенных фигурных скобок,
\bfoo\b(?![^{}]*})
Это не будет соответствовать foo
внутри \ref{sec:foo}
или даже в somethingelse{sec:foo}
, как вы можете видеть, он не соответствует foo
, который не содержится в фигурных скобках.Если вам нужно точное решение, тогда потребуется поддержка переменной длины, которая, как я уже говорил, доступна на очень ограниченных языках.
Regex Demo