![删除字符串 Python 中的多余空格和花括号 latex 代码(在 python 中规范化字符串)](https://linux22.com/image/466848/%E5%88%A0%E9%99%A4%E5%AD%97%E7%AC%A6%E4%B8%B2%20Python%20%E4%B8%AD%E7%9A%84%E5%A4%9A%E4%BD%99%E7%A9%BA%E6%A0%BC%E5%92%8C%E8%8A%B1%E6%8B%AC%E5%8F%B7%20latex%20%E4%BB%A3%E7%A0%81%EF%BC%88%E5%9C%A8%20python%20%E4%B8%AD%E8%A7%84%E8%8C%83%E5%8C%96%E5%AD%97%E7%AC%A6%E4%B8%B2%EF%BC%89.png)
我想在 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}}'