Я хочу выделить весь текст в {}
, но только если там нет \status…{}
.
Примеры, которые должны соответствовать:
\subsection{Hello} -> "\subsection”, "Hello"
\section{Foobar} -> "\section", "Foobar"
\subsubsection{This is a Triumph} -> "\subsubsection", "This is a Triumph"
Примеры, которые должны not match:
\subsection{Hello\statusdone{}}
\section{Hello World\statuswip{}}
\section{Everything\statusproofreading{}}
Я думал, что для этого идеально подойдет отрицательный просмотр вперед:
(\\.*section)\{(.*)(?!\\status.*)\}
но они совпадают:
\subsection{Hello\statusdone{}} -> "\subsection", "Hello\statusdone{}"
\section{Hello World\statuswip{}} -> "\section", "Hello World\statuswip{}"
\section{Everything\statusproofreading{}} -> "\section", "Everything\statusproofreading{}"
I подозреваю, что это из-за .*
, предшествующего отрицательному просмотру вперед. Если я заменю его на, egg, Hello
в следующем регулярном выражении:
(\\.*section)\{(Hello)(?!\\status.*)\}
Он правильно не соответствует первому отрицательному примеру \subsection{Hello\statusdone{}}
.
Как мне обойти это ?