Я хочу удалить фигурные скобки вне математического режима texs. Например:
Lorem Ipsum $\mathbb{R}$ dolore. {Author} $\{1,\dotsc,n}$
должен стать:
Lorem Ipsum $\mathbb{R}$ dolore. Author $\{1,\dotsc,n}$
Поскольку вы не можете по-настоящему отрицать регулярные выражения, я смотрел в будущее и в будущее. Это не сработало для меня, если говорить технически, {Author} также находится между двумя знаками доллара. У какого-нибудь специалиста по регулярным выражениям есть совет для меня
Я хотел бы использовать preg_replace только тогда, когда проблема не слишком сложна для этого.
Вы можете использовать это регулярное выражение:
$re = '/\$\\\w*{[^}]+}(*SKIP)(*F)|{[^}]*}/';
$str = "Lorem Ipsum \$\mathbb{R}\$ dolore. {Author} \${1,\dotsc,n}\$";
$result = preg_replace($re, '', $str);
//=> Lorem Ipsum $\mathbb{R}$ dolore. Author $\{1,\dotsc,n}$
Здесь мы используем глаголы PCRE (*SKIP)(*F)
пропустить блоки математического режима и заменить {
а также }
в остальной части текста:
Других решений пока нет …