首页 > 解决方案 > 用于替换包含乳胶显示数学的符号的正则表达式

问题描述

有时在 Latex 中,我需要在开头和结尾$$用 with 替换包含一些数学语法的符号。通常这两种情况都在孤立的线上,所以我不能使用像or之类的锚点。\[\]^$

最小的例子:我想改变

    $$
      x^2        
    $$ 

    \[
      x^2
    \]

数学语法可能会运行超过两行。我通常是手动完成的。是否有一个正则表达式可以解决问题?

标签: regex

解决方案


您可以使用此正则表达式:

\$\$(.*?)\$\$

但请注意,您需要激活dotAll模式。

如果您的语言不支持正则表达式标志,请使用

\$\$((.|\n)*?)\$\$

反而。

这是javascript中的一个示例:

const regex = /\$\$(.*?)\$\$/gs;

const source = `
    $$
      x^2        
    $$
`;

const result = source.replace(regex, '\\[$1\\]');

console.log(result);


推荐阅读