Splunk Search

How to replace string using rex with partial matched string?

LearningGuy
Motivator

How to replace string using rex with partial matched string?
Thank you for your help.
For example:
I tried to replace "::" (double colon) with ":0:"  (colon zero colon) if it the previous characters contain ":" followed by "1 to 3 characters" 
| rex mode=sed field=ip "s/:.{1,3}::/:.{1,3}:0:/g"   => this does not work because it will literally replace it with
":.{1,3}:0:"   instead of retaining the matched strings

Before
a0:1::21
b0:1c::21
c0:a13::23

After
a0:1:0:21
b0:11:0:21
c0:111:0:23

Labels (1)
0 Karma
1 Solution

richgalloway
SplunkTrust
SplunkTrust

Characters to be retained should be enclosed in a capture group and that group referenced in the replacement text.

| rex mode=sed field=ip "s/:(.{1,3})::/:\1:0:/g" 
---
If this reply helps you, Karma would be appreciated.

View solution in original post

LearningGuy
Motivator

It worked!!  Thank you..    

richgalloway
SplunkTrust
SplunkTrust

Characters to be retained should be enclosed in a capture group and that group referenced in the replacement text.

| rex mode=sed field=ip "s/:(.{1,3})::/:\1:0:/g" 
---
If this reply helps you, Karma would be appreciated.
Get Updates on the Splunk Community!

Application management with Targeted Application Install for Victoria Experience

  Experience a new era of flexibility in managing your Splunk Cloud Platform apps! With Targeted Application ...

Index This | What goes up and never comes down?

January 2026 Edition  Hayyy Splunk Education Enthusiasts and the Eternally Curious!   We’re back with this ...

Splunkers, Pack Your Bags: Why Cisco Live EMEA is Your Next Big Destination

The Power of Two: Splunk + Cisco at "Ludicrous Scale"   You know Splunk. You know Cisco. But have you seen ...