Splunk Search

Regex assistance

ddrillic
Ultra Champion

We have a field such as - activity="POST->/cirrus/v1.0/providers"
We would like to extract everything after the POST->/cirrus/v1.0/ part.

What would be a way to do it?

Tags (1)
0 Karma
1 Solution

DalJeanis
Legend

This will pull that exact section out of a field called myfield and place it into a field called otherstuff

| rex field=myfield  "POST->\/[^\/]+\/[^\/]+\/(?<otherstuff>[^\"]+)" 

This will do that and also put the verb into a field called whatverb.

| rex field=myfield  "(?<whatverb>POST|DELETE|GET|PUT)->\/[^\/]+\/[^\/]+\/(?<otherstuff>[^\"]+)" 

View solution in original post

DalJeanis
Legend

This will pull that exact section out of a field called myfield and place it into a field called otherstuff

| rex field=myfield  "POST->\/[^\/]+\/[^\/]+\/(?<otherstuff>[^\"]+)" 

This will do that and also put the verb into a field called whatverb.

| rex field=myfield  "(?<whatverb>POST|DELETE|GET|PUT)->\/[^\/]+\/[^\/]+\/(?<otherstuff>[^\"]+)" 

ddrillic
Ultra Champion

Perfect!!!

0 Karma

DalJeanis
Legend

1) is "POST" the only verb you want it for? 2) are there always exactly three slashes in the part you don't want?

0 Karma

ddrillic
Ultra Champion

That's exactly it ; -)

0 Karma

ddrillic
Ultra Champion

Sorry sorry - | rex field=activity "POST->/cirrus/v1.0/(?<activity_clean>[a-z]+)" did it...

0 Karma

DalJeanis
Legend

please accept your answer to close the question.

0 Karma

DalJeanis
Legend

Ah, you meant that value within quotes was the value of the activity field.

I'd suggest changing that to one of the following -
| rex field=activity "POST->/cirrus/v1.0/(?.+)"
or
| rex field=activity "POST->/cirrus/v1.0/(?\w+)"

...since you probably can't be sure that it will always be only lower-case alpha characters. You also don't know when the cirrus version might change, so you might want to wildcard that as well. I tested this as below.

| makeresults | eval activity="POST->/cirrus/v1.0/providers"  
| rex field=activity  "POST->/cirrus/[^/]+/(?<activity_clean>.+)"

I was a little surprised the slashes didn't have to be escaped, although the code DID accept escaping them. Live and learn.

ddrillic
Ultra Champion

I was surprised also about the non-escaping ; -)

0 Karma
Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

From Data to Insight: Announcing the Winners of the Splunk Dashboard Contest

Hi Splunkers, First off, thank you to everyone who participated in our very first From Data to Insight: The ...

Splunk Developers: Construct Your Future at the .conf26 Builder Bar

Calling all Splunk architects, platform admins, and app developers: the site is open, and the blueprints are ...

Quick connection discovery mode for forwarders

When a Splunk forwarder loses connectivity to its indexers, it does not always reconnect immediately. In many ...