删除字符串 Python 中的多余空格和花括号 latex 代码(在 python 中规范化字符串)

删除字符串 Python 中的多余空格和花括号 latex 代码(在 python 中规范化字符串)

我想在 Python 中规范化字符串。例如,我有一个 LaTeX 代码

str='{{{       \\dfrac{{3}}{{4}}    +   \\sqrt{3} }}}'

我想得到字符串

str='{\\dfrac{3}{4}+\\sqrt{3}}'

删除多余的空格和花括号(例如:{{3}}-->{3},...)

请帮帮我!谢谢!

答案1

您可以使正则表达式更加复杂,以捕获更深层嵌套的情况,这将丢失一些重要的空白,例如\mbox{ }但是......

import re
v=r"str='{{{       \\dfrac{{3}}{{4}}    +   \\sqrt{3} }}}'"
v=re.sub('([^a-zA-Z]) +', r'\1',v)
v2=re.sub('{{(([^{}]|{[^{}]*})*)}}',r'{\1}',v)
while v2 != v:
    v=v2
    v2=re.sub('{{(([^{}]|{[^{}]*})*)}}',r'{\1}',v)
print(v)

生产

str='{\\dfrac{3}{4}+\\sqrt{3}}'

相关内容