Splunk Search

Field Extraction -- Break Field at Explicit Character

himynamesdave
Contributor

All - I need someone to bring me sanity with a regex I am trying to write.

Essentially I want to capture everything after "username=" up to either "&" or "\s"

Two sample events:

Ex. 1

username=test%40bmcm%2ecom&version=5%2e4%2e0

Ex. 2

username=test%40bmcm%2ecom next_field

Right now my regex looks like this:

username=(?P[^&|^s]+)

Though I can get it to break on spaces, the regex will not break on "&". Can someone tell me where I'm going wrong, I'm sure it's embarrassingly simple!

Thanks!

0 Karma
1 Solution

cpetterborg
SplunkTrust
SplunkTrust

Try:

username=(?P<username>[^\s&]+)

From regex101.com:

https://regex101.com/r/pNNiop/1

View solution in original post

0 Karma

woodcock
Esteemed Legend

You are confusing character class (which does not need boolean joiners) with string literals (which do need boolean joiners); This should work:

(?ms)username=(?<username>[^&\s]+)
0 Karma

cpetterborg
SplunkTrust
SplunkTrust

Try:

username=(?P<username>[^\s&]+)

From regex101.com:

https://regex101.com/r/pNNiop/1

0 Karma
Get Updates on the Splunk Community!

Shape the Future of Splunk: Join the Product Research Lab!

Join the Splunk Product Research Lab and connect with us in the Slack channel #product-research-lab to get ...

Auto-Injector for Everything Else: Making OpenTelemetry Truly Universal

You might have seen Splunk’s recent announcement about donating the OpenTelemetry Injector to the ...

[Puzzles] Solve, Learn, Repeat: Character substitutions with Regular Expressions

This challenge was first posted on Slack #puzzles channelFor BORE at .conf23, we had a puzzle question which ...