Удаление фигурных скобок вне математического режима texs

Я хочу удалить фигурные скобки вне математического режима texs. Например:

Lorem Ipsum $\mathbb{R}$ dolore. {Author} $\{1,\dotsc,n}$

должен стать:

Lorem Ipsum $\mathbb{R}$ dolore. Author $\{1,\dotsc,n}$

Поскольку вы не можете по-настоящему отрицать регулярные выражения, я смотрел в будущее и в будущее. Это не сработало для меня, если говорить технически, {Author} также находится между двумя знаками доллара. У какого-нибудь специалиста по регулярным выражениям есть совет для меня

Я хотел бы использовать preg_replace только тогда, когда проблема не слишком сложна для этого.

1

Решение

Вы можете использовать это регулярное выражение:

$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}$

RegEx Demo

Здесь мы используем глаголы PCRE (*SKIP)(*F) пропустить блоки математического режима и заменить { а также } в остальной части текста:

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]