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!

New Year, New Changes for Splunk Certifications

As we embrace a new year, we’re making a small but important update to the Splunk Certification ...

[Puzzles] Solve, Learn, Repeat: Unmerging HTML Tables

[Puzzles] Solve, Learn, Repeat: Unmerging HTML TablesFor a previous puzzle, I needed some sample data, and ...

Enterprise Security (ES) Essentials 8.3 is Now GA — Smarter Detections, Faster ...

As of today, Enterprise Security (ES) Essentials 8.3 is now generally available, helping SOC teams simplify ...