简单的regex在我的LaTeX文件,我有数以千计下面的结构的出现:极品乳胶
$\displaystyle{...math goes here...}$
我想和
\mymath{...math goes here...}
注取代这些的$消失了,但大括号仍然存在---如果不是最后的$,这将是一个基本的查找和替换。如果只有我知道任何正则表达式,我相信它会处理这个没有问题。我需要做什么正则表达式?
非常感谢提前。
编辑:一些问题和疑问出现了,所以让我澄清:
- 是,
$\displaystyle{ ... }$
可以在同一行中多次出现。 - 否,嵌套
}$
的(如$\displaystyle{...{more math}$...}$
)不能出现。我的意思是,如果你把它放在\mbox
之类的东西里,我想它可能会出现,但我无法想象为什么有人会在$\displaystlye{}$
这个结构里面做到这一点,其目的是用文本内联数学运算。无论如何,这不是我曾经做过或可能做的事情。 - 我尝试使用Perl的建议,但虽然壳没有提出异议,文件保持不受影响。我试过使用sed建议,但是shell反对'(''。'我以前从来没有用过sed(和“man sed”是钝的),但这里是我所做的:导航到含.tex文件里和一个目录下键入“
sed s/\$\\displaystyle({[^}]+})\$/\\mymath\1/g *.tex
”没有运气如何使用SED做我想做什么
同样,许多许多感谢所有提供帮助
我认为你可以明确一个限制,让每个人的工作变得更简单:数学部分内部不会有$,因为这将表明LaTeX中数学模式的结束(更准确地说没有未转义的$,即\ $是允许的,但我怀疑你会有太多的数学公式与美元符号)。 – Aniko 2010-01-27 15:41:59
你是对的。数学模式没有$(对我来说,无论如何)。 – 2010-01-27 16:00:33
不是直接编辑文件,而只是为了看看结果是什么,你可以使用perl -pe而不是perl -pi -e。确保没有错字。 – bertolami 2010-01-28 08:09:52