grep / regex进行迭代/递增

时间:2011-06-07 20:47:59

标签: javascript regex grep

我一直在遇到需要增加变量的情况,但是我还没有找到一种编写脚本的方法,所以我最终手工编写了它,这在有大量的内容时非常糟糕。我发现this site上的代码我认为可行,但我的文本编辑器(TextWragler)不喜欢它(或者我没有做正确的事情)。这是一个例子:

Initial Contents:   Var22 Var20 Var86 Var30
Search String:      Var*[0-9]
Replace String:     Var%1>49>
Results:    Var50 Var51 Var52 Var53


替换字符串只是自己返回。

我将使用它来增加以下内容:

<span id="x">something</span> <span id="x">else</span> <span id="x">entirely</span>

值x应替换为x1,x2,x3或其他一些“字符串”+ n。如果它可以像grep代码所暗示的那样识别和重新编号错误编号的变量,那将是理想的。
知道如何让这个工作吗?我可以不使用textWrangler吗?谢谢

另一方面,我正试图在javascript上做得更好,我真的很好奇我如何能够将这样的东西(grep /增量字符串)实现到javascript中?

1 个答案:

答案 0 :(得分:2)

不确定你想要什么,但如果你想对'Var'之后的数字部分应用(算术或其他)操作,你可以使用委托函数做类似的事情

'Var22 Var20 Var86 Var30'
   .replace(/(Var)(\d+)/g,
            function(a,b,c){return b+(Number(c)+10)}
           ); //=> Var32 Var30 Var96 Var40

在javascript正则表达式中,% - 符号为$,匹配索引从1开始。如果您只想将'Var12`中的数字替换为9,它看起来像这样:

'Var12'.replace(/(Var)(\d+)/,'$19'); //=> Var9
//     Var (=$1)  ^^^   ^ 1 or more numbers (=$2)

This webpage为您提供有关 javascript 正则表达式

的更多信息