EDIT: регулярное выражение с тестированием, примеры и решения здесь: https://www.regex101.com/r/rY7uI4/2
Я пытаюсь преобразовать содержание TeX (который мы будет считаться содержащимся в переменной foo
), так что разделители $$
будут преобразованы в стандарт TeX \[
и \]
. Я играл с regex101, но до сих пор не повезло.
В идеале, ожидаемый результат, который дал этот вход:
text
$$ math $$
$$
math
$$
text $$math$$ text
выход является следующий
text
\[ math \]
\[
math
\]
text \[math\] text
Возможно регулярное выражение не лучший инструмент, чтобы сделать это, но я не нашел никакого другого инструмент для выполнения задачи. Спасибо за любую помощь!
EDIT: добавить более сложный (и реалистичный) TestCase:
$$\alpha \quad \beta \quad \varepsilon \quad \varphi \quad \mathbb{R} \quad \mathcal{C}([0,1]) \quad \mathfrak{R}([0,2\pi]) \quad \mathscr{C}(\mathbb{R})$$
$$\vec{x} \in \mathbb{R}^n, \quad \underline{x}\in \mathbb{R}^m, \quad \mathbf{x}\in \mathbb{R}^m \$$$string
должно привести к:
\[\alpha \quad \beta \quad \varepsilon \quad \varphi \quad \mathbb{R} \quad \mathcal{C}([0,1]) \quad \mathfrak{R}([0,2\pi]) \quad \mathscr{C}(\mathbb{R})\]
\[\vec{x} \in \mathbb{R}^n, \quad \underline{x}\in \mathbb{R}^m, \quad \mathbf{x}\in \mathbb{R}^m \$\]string
Обратите внимание на prescence сбежавшего $ в конце второй строки ,
Вы не можете использовать простую 'str.replace'? – vaultah
Если вы хотите заменить фиксированные строки (не * шаблоны *) другими фиксированными строками, стандартная функция замены строки вопроса - это то, что вы хотите. Не переусердствуйте. – Tomalak
К сожалению, str.replace заменит все вхождения, которые он найдет, в то время как я только хочу, для каждой пары '$$', первая '$$' будет заменена на' \ [', а вторая с' \] ' – Roophie