在Sublime Text 2中使用正则表达式更改数字

时间:2012-10-18 12:21:07

标签: regex sublimetext2 replace

我正试图在5 + 1value之间加入px,因此1px应成为15px100px应成为1005px {1}}。

我正在搜索1(.*?)px并替换为1$15px,但这不起作用...

2 个答案:

答案 0 :(得分:2)

自从被问到这个问题已经有一段时间了,但对于遇到类似问题的其他人来说,这是一个简单的答案。

在Sublime Text 2中,以下替换字符串将为您提供所需的结果。

1${1}5px

示例文字:

1px 
100px 1px and 100px

1px 100px 1px and 100px 1px 
100px 1px and 100px1px 
100px 1px and 100px

查找内容:

1(.*?)px

替换为:

1${1}5px

结果:

15px 
1005px 15px and 1005px

15px 1005px 15px and 1005px 15px 
1005px 15px and 1005px15px 
1005px 15px and 1005px

这使用名为的组替换${ name }而不是数字组替换$ number。在这种情况下,头号代表名称。

出于某种原因,当数字跟随编号组时,Sublime Text 2正则表达式引擎在替换时效果不佳。

答案 1 :(得分:0)

您的替换可能看起来像捕获组$15而不是$1。我不熟悉sublimetext2,但你可能需要像这样逃避你的替换:

s/1(.*?)px/1${1}5px/

这肯定是perl中的正确语法,它似乎与您正在使用的语法非常相似。