Visual Studio 2003 中的正则表达式替换问题

发布于 2024-07-24 23:41:56 字数 302 浏览 4 评论 0 原文

我正在将一些 LaTeX 文档转换为重组文本,并且在 Visual Studio 2003 中使用正则表达式时遇到了一些问题。我正在尝试使用以下查找/替换字符串将 \emph{text} 转换为 *text*:

\\emph\{([^\}]*)\} 

*\0*

然而,使用这对我将 \emph{text} 转换为 *\emph{text}* 这不是我所期望的。 当我使用 *\1* 而不是 *\0* 时,我得到 ** 作为替换结果。

我对分组规则缺少什么或不明白什么?

谢谢。

I'm in the process of converting some LaTeX documentation to restructured text and having some trouble with a regular expression in Visual Studio 2003. I'm trying to convert \emph{text} to *text* using the following find/replace strings:

\\emph\{([^\}]*)\} 

*\0*

However, using this pair I get \emph{text} converted to *\emph{text}* which was not what I expected. When I use *\1* instead of *\0* I get ** as the replacement result.

What am I missing or what don't I understand about the grouping rules?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

那一片橙海, 2024-07-31 23:41:57

我认为在 VS 正则表达式替换语法中, \0 是整个匹配的字符串,而 \1 是第一个捕获变量的内容(\2 是第二个,依此类推)。 所以:

\0

但是,使用这对我得到
\emph{text} 转换为 *\emph{text}*
这不是我所期望的。

从而确认,\0是整个匹配的字符串。

当我使用 *\1* 而不是 *\0* 时,我得到 ** 作为替换结果。

可能您没有匹配捕获类中的任何内容。

要添加更多详细信息,定义捕获类的语法(在 文档)使用大括号 {},而不是您在此处使用的圆括号 ()。 可能这将用作“查找”表达式:

\\emph\{{[^\}]*}\} 

I think that in the VS regex replacement syntax, \0 is the whole matched string, while \1 is the content of the first captured variable (\2 being the second and so on). Therefore:

\0

However, using this pair I get
\emph{text} converted to *\emph{text}*
which was not what I expected.

Thus confirming, \0 is the whole matched string.

When I use *\1* instead of *\0* I get ** as the replacement result.

Probably you are not matching anything in the capture class.

To add more detail, the syntax for defined a capture class (called a tagged expression in the docs) uses the braces {}, not parentheses () as you are using here. Probably this will work as the "find" expression:

\\emph\{{[^\}]*}\} 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文