是否可以替换正则表达式序列中的特定字符?

时间:2014-09-30 09:35:33

标签: regex notepad++

我们说我有以下文字:

#Foo foo bar bar
foo bar foo
#bar Foo Foo
foo bar

假设我想用以-字符开头的行中的#个字符替换空格键。所以输出应该是:

#Foo-foo-bar-bar
foo bar foo
#bar-Foo-Foo
foo bar

我知道我可以使用这个正则表达式来找到这些行:

/^#(.*)$/gm

但我能以任何方式改变那些$1序列吗?

P.S。我在notepad ++中使用正则表达式将一些数据从excel转换为代码(实际上非​​常方便)。

PS2我还必须更换文本中的一些标签字符,在用Avinash Raj的答案修补一下后,我发现我可以使用这个正则表达式做到这一点...除了它没有工作正如预期的那样,但是Avinash Raj在这个正则表达式中再次得到了帮助。

/(?:^#|(?<!^)\G)[\S ]*\K\t/gm

DEMO

1 个答案:

答案 0 :(得分:4)

我认为notepad ++会支持\G。锚\G匹配上一场比赛结束的位置。

正则表达式:

(?:^#|(?<!^)\G)\S*\K[ \t]+

替换字符串:

-

DEMO

如果您想用-替换单个空格,请尝试以下正则表达式

(?:^#|(?<!^)\G)\S*\K[ \t]