Splunk Search

Rex extraction

redferrari
New Member

I have a field called "user", i'm trying to extract the username from the string and create a new field called extracted_user that I will later run against an LDAP filter to look up additional AD info.

user field examples:
Smith, John M. (jmsmith)(+)
Doe, Jane P. (jpdoe)(+)

I want to extract the username between the first set of parenthesis "jmsmith" and "jpdoe" respectively.

My current search:
index=network sourcetype=opsec app_rule_name="Track Uncategorized Content" user!=NULL
| rex field=user “((?.*))(“

Right now the search runs, but extracted_user field isn't created and the user field is unchanged. Any help would be greatly appreciated.

Tags (2)
0 Karma
1 Solution

cpetterborg
SplunkTrust
SplunkTrust

You need to escape the parentheses that are part of the string:

| rex field=user "\((?P<extracted_user>[^\(]+)\)\("

View solution in original post

gmchenry
Explorer

Try this:
| rex field=_raw "(?:()(?P\w+)"

I tested this at regex101.com and it seemed to do the trick.

0 Karma

cpetterborg
SplunkTrust
SplunkTrust

You need to escape the parentheses that are part of the string:

| rex field=user "\((?P<extracted_user>[^\(]+)\)\("

redferrari
New Member

Ohhh, thanks!

0 Karma

redferrari
New Member

| rex field=user “((?.*))(“

0 Karma
Get Updates on the Splunk Community!

Congratulations to the 2025-2026 SplunkTrust!

Hello, Splunk Community! We are beyond thrilled to announce our newest group of SplunkTrust members!  The ...

Community Feedback

We Want to Hear from You! Share Your Feedback on the Splunk Community   The Splunk Community is built for you ...

Manual Instrumentation with Splunk Observability Cloud: Implementing the ...

In our observability journey so far, we've built comprehensive instrumentation for our Worms in Space ...