用括号内的句点查找和替换连字符的正则表达式

时间:2015-04-28 09:38:57

标签: regex xcode

我知道如何使用RegExp进行基本的查找和替换,但我想知道是否可以在两个括号之间进行查找和替换。我有以下输入:

"$(vc-alert)"
"$(vc-alert-error)"
"$(vc-alert-error_message)"

我想产生输出:

"$(vc.alert)"
"$(vc.alert.error)"
"$(vc.alert.error_message)"

要替换的连字符数量应该是任意的。这就是我到目前为止所做的:

/\"\$\(([\w_]+)(-([\w_]+))*\)\"/g

这适用于查找组,但将所有重复部分组合成一个组。因此,我不能做一个有效的替代,例如。

"\$($1.$2.$3...   (etc etc)

有没有办法在这样的循环中使用正则表达式执行查找和替换?我能以某种方式使用前瞻或后视吗?

1 个答案:

答案 0 :(得分:1)

你可以使用正面前瞻的正则表达式,它需要一个后面的圆形括号:

(?=[^()]*\)[\w\s.,]*")-

查看demo