【发布时间】:2016-12-21 12:14:39
【问题描述】:
例如,我有很多 Tex 字符串,例如
|u(x,t)|^2 = \frac{1}{\sqrt{1+(4+t)^2))e^{-\frac{2(x-k_0t)^2}{1+4t^2))
上面Tex的问题是括号不匹配。 \frac{1}{\sqrt{1+(4+t)^2)) 应该是 \frac{1}{\sqrt{1+(4+t)^2}} 和 {-\frac{2(x-k_0t)^2}{1+4t^2)) 应该是 {-\frac{2(x-k_0t)^2}{1+4t^2}}
wrong: \frac{1}{\sqrt{1+(4+t)^2))
right: \frac{1}{\sqrt{1+(4+t)^2}}
wrong: {-\frac{2(x-k_0t)^2}{1+4t^2))
right: {-\frac{2(x-k_0t)^2}{1+4t^2}}
说明:第一个例子不对,因为后面两个)没有)匹配,应该是}匹配前面的{
我想知道如何自动纠正这种不匹配的括号?我已经安装了 perl,我打算用正则表达式来做,但想不出办法。
【问题讨论】:
-
那些来自哪里?它们是更大文件的一部分吗?它们总是在单独的行上,还是在中间可能包含换行符的大块文本的一部分?
-
就像一个极端情况:当单括号/大括号是公式的一部分时会发生什么,例如。 G。作为关于正则表达式的文档中的文字?
-
@simbabque 嗨,simbabque。我帖子中的字符串是一个完整的 Tex 形式的数学公式
-
对于我们这些不熟悉 TeX 的人来说,这种解释毫无意义。请edit 并包含文件中的几行完整行。
-
这通常是不可能的,除非有明确的错误模式。这就是为什么编程语言会发出像 missing semicolon 这样的错误,而不是仅仅为您修复它。这些数据是从哪里来的,最初是如何犯错误的?
标签: regex perl text-processing