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

php regex curly-braces math-mode

43 просмотра

1 ответ

1067 Репутация автора

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

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

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

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

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

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

Автор: Wipster Источник Размещён: 18.07.2016 03:43

Ответы (1)


1 плюс

563881 Репутация автора

Решение

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

$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)чтобы пропустить блоки математики режима и заменить {и }в остальной части текста:

Автор: anubhava Размещён: 18.07.2016 03:48
Вопросы из категории :
32x32