如何使用正则表达式替换字符串

时间:2018-03-22 08:58:14

标签: regex sed replace splunk

我有以下字符串:

  This is part 1: and this is part 2

字符串以2个空格开头,在分隔符“:”之前有一个部分,在分隔符之后有一个部分。

我想在分隔符之前替换除分隔符之外的每个空格,除了行的开头的空格,用下划线替换分隔符之后的空格。

最终结果应如下所示:

  This_is_part_1: and this is part 2

分隔符之前的部分具有可变长度并且具有可变数量的空格。

这个正则表达式将在Splunk中使用,它使用基于sed的替换机制。

我想要的是什么,如果可能,怎么样?

1 个答案:

答案 0 :(得分:1)

\b(\s)+(?=.*:)

这似乎有效。

  This is part 1: and this is part 2

替换为“_”

  This_is_part_1: and this is part 2

Demo

<强>被修改

以上正则表达式将连续空格替换为一个下划线。

如果要将连续下划线的连续空格替换为1到1,则必须使用其他正则表达式,如下所示

(?<=\b|(?<!^)(?<!^\s))(\s)(?=.*:)

Demo