将常量值添加到数字 XML 属性

发布于 2024-10-11 23:19:48 字数 496 浏览 7 评论 0原文

背景

使用 vim (gvim) 将常量值添加到与正则表达式匹配的数字。

问题

以下正则表达式将匹配 width="32"

/width="\([0-9]\{2\}\)"

问题

如何将 width 属性的数值替换为使用该属性的数学表达式的结果价值?例如,我想执行以下全局替换:

:%s/width="\([0-9]\{2\}\)"/width="\1+10"/g

这将为 width="32"width="105" 生成 width="42"width="95"

更新

看起来这不能单独使用正则表达式来完成——有 vim 方式吗?

谢谢你!

Background

Add a constant value to numbers matched with a regular expression, using vim (gvim).

Problem

The following regular expression will match width="32":

/width="\([0-9]\{2\}\)"

Question

How do you replace the numeric value of the width attribute with the results from a mathematical expression that uses the attribute's value? For example, I would like to perform the following global replacement:

:%s/width="\([0-9]\{2\}\)"/width="\1+10"/g

That would produce width="42" for width="32" and width="105" for width="95".

Update

Looks like this cannot be done using regex alone -- is there a vim-way?

Thank you!

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

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

发布评论

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

评论(1

稳稳的幸福 2024-10-18 23:19:48
%s/width="\zs\d\{2}\ze"/\=submatch(0)+10/g

请参阅 /\zs/\zesub-replace-expressionsubmatch() 的文档。

%s/width="\zs\d\{2}\ze"/\=submatch(0)+10/g

See documentation for /\zs, /\ze, sub-replace-expression and submatch().

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