2015-06-10 21 views
1

我使用正则表达式查找和崇高的文本3替换功能,搜索表单(\cref{exNUMBER})(\cref{exNUMBERLETTER})例如表达:替换Sublime Text中的部分表达式?

(\cref{ex1}) 
(\cref{ex1a}) 

下面的正则表达式查找这些表情就好了:

\(\\cref\{ex(\d|\d\l)\}\) 

我正在努力的是如何用表达式\eqref{exNUMBER}\eqref{exNUMBERLETTER}替换这些相同的表达式。例如,上述实施例将产生:

\eqref{ex1} 
\eqref{ex1a} 

我试图做一个大致平行的结构,\\eqref\{ex(\d|\d\l)\},但所有的时候我替换产生如下:\eqref{ex(d|d)}

什么是使用正则表达式通配符而崇高的文本3代替,这样我可以代替(\cref{exNUMBER})(\cref{exNUMBERLETTER}),(分别)\eqref{exNUMBER}\eqref{exNUMBERLETTER}正确的方法是什么?

回答

3

捕捉你想保留一组(所以你可以把它放回替换)什么:

\(\\c(ref\{ex(\d|\d\l)\})\) 
    ^    ^

的标记表示括号加入到捕捉你想保持作为一个群体的东西(第1组) 。

和替换为符合条件:

\eq\1 

\1恢复参照到组1 - 它输出什么是在比赛捕获。

+1

为了在“eq”之前保留反斜杠,对替换行('\\ eq \ 1')的开始处添加“\\”进行了小修改,这很有效。 – Dennis

1

波希米亚人的答案是完美的,应该是被接受的答案。我只是添加了一些更简单的东西,因为我发现OP的正则表达式的复杂性有点难以遵循。对于简单的情况,假设我们有包含一个文本文件:

345 
3234 
23423 

我们想转换为:

{ value: 345 } 
{ value: 3234 } 
{ value: 23423 } 

为找到正确的语法/替换将是:

  • 查找(\d+)
  • 替换{ value: \1 }

波希米亚的答案很清楚地解释了这背后的逻辑,只是更多的斜杠:)。

相关问题