Splunk Search

How to create a regex that removes everything before the second underscore?

gbwilson
Path Finder

I'm trying to create a regex that removes everything before the second underscore in a string. The number of characters before the second underscore varies.

For example:

DR300_Corp_76
BELLOE_MX400_32
AB200_Corp_123

I only want the two or three digits after the second underscore (i.e. 76, 32, 123, etc.)

Tags (2)
0 Karma
1 Solution

somesoni2
Revered Legend

If the end of you string is always numbers, try like this

your current search 
| eval yourfield=replace(yourfield,".+_(\d+)$","\1")

if not, try this

your current search 
| eval yourfield=replace(yourfield,"^([^_]+_){2}(.+)$","\2")

View solution in original post

0 Karma

somesoni2
Revered Legend

If the end of you string is always numbers, try like this

your current search 
| eval yourfield=replace(yourfield,".+_(\d+)$","\1")

if not, try this

your current search 
| eval yourfield=replace(yourfield,"^([^_]+_){2}(.+)$","\2")
0 Karma

gbwilson
Path Finder

Thanks for your help! First one worked great.

0 Karma

gcusello
SplunkTrust
SplunkTrust

Hi gbwilson,
try this

(?<my_field>[^_]*_[^_]*)_.*

test it in https://regex101.com/r/YHRXW9/1
Bye.
Giuseppe

0 Karma
Get Updates on the Splunk Community!

Enterprise Security Content Update (ESCU) | New Releases

In December, the Splunk Threat Research Team had 1 release of new security content via the Enterprise Security ...

Why am I not seeing the finding in Splunk Enterprise Security Analyst Queue?

(This is the first of a series of 2 blogs). Splunk Enterprise Security is a fantastic tool that offers robust ...

Index This | What are the 12 Days of Splunk-mas?

December 2024 Edition Hayyy Splunk Education Enthusiasts and the Eternally Curious!  We’re back with another ...