sublime text 替换和查找表达式正则表达式

sublime text replace and find expression regular expression

我想替换

形式的表达式
\theta^\top x_2 +x_1 or \theta^\top x_{2} +x_{1} or \theta^{\top} x_{2} +x_{1} or \theta^{\top}x_{2}+x_{1}

或同一乳胶数学命令的任何其他组合 通过

\theta \diamond x

使用 sublime 文本。有没有办法使用正则表达式在 sublime text 中做到这一点?我找不到 {}.

的正则表达式

那是因为 {} 是正则表达式语法的一部分。您可以使用斜杠 (\) 对它们进行转义。这样的事情可能会奏效:

\theta\^\{?\top\}?\s*\{?x_\{?2\}?\s*\+\s*x_\{?1\}?

让我们分解一下。

  • \theta\^ 将匹配字符串 \theta。请注意,我们必须转义 \t^,因为 \t 是一个制表符,而 ^ 是正则表达式语法的一部分。
  • \{?\}? 将匹配 {} 一次或根本不匹配。同样,我们必须转义括号。问号 (?) 表示该字符可以出现 0 次或 1 次。
  • \top - 同样,我们必须转义制表符 \t.
  • \s* - 一个 space 字符 (\s) 零次 次。
  • x_\{?2\}?\s*\+\s*x_\{?1\}? 将匹配 x_,带有 2 个、零个或多个 space 的可选大括号后跟 +(这也是正则表达式的一部分语法,所以我们必须转义它),然后 x_ 加上一个(还有可选的大括号)。

希望这一切都解决了!