Splunk Search

How to escape a parenthesis when using rex to create a field?

Splunkster45
Communicator

I have a question about extracting two fields from the below sample text

Session <number> (<username>@<ipaddress>) started

I would like to be able to store the variable number and username as a field, but I am running into issues with the '('. Whenever I run the command, I get an error message saying that I am missing a ')'

Here is the command that I am using

| rex field=_raw "Session (?<number><backslash>w+) ((?<username><backslash>w+)@"

The number is either a 4 or 5 digit number and the username is always 6 characters. I do not care about the IP address.

How can I escape the parenthesis? I've done a little bit of searching and found a question that asked about escaping a '(' in a macro, but either that didn't apply or I couldn't follow it.

Thanks in advance!

Tags (3)
0 Karma
1 Solution

jrodman
Splunk Employee
Splunk Employee

In PCRE regexes (which Splunk uses), punctuation preceded by a backslash always matches the punctuation, so \( matches a (.
Parens without a backslash form groups as you are using to find your number. There is a bit of a trick though, because the search language also uses backslashes for escaping. Therefore I would suggest

 | rex field=_raw "Session (?<number>\\w+) (?<username>\\(\\w+)@"

View solution in original post

jrodman
Splunk Employee
Splunk Employee

In PCRE regexes (which Splunk uses), punctuation preceded by a backslash always matches the punctuation, so \( matches a (.
Parens without a backslash form groups as you are using to find your number. There is a bit of a trick though, because the search language also uses backslashes for escaping. Therefore I would suggest

 | rex field=_raw "Session (?<number>\\w+) (?<username>\\(\\w+)@"

Splunkster45
Communicator

Thanks! I modified your search command to the following and it worked perfectly

| rex field=_raw "Session (?\\w+) \\((?\\w+)@"

jrodman
Splunk Employee
Splunk Employee

Ah, seems I slightly misunderstood the goal. In retrospect it should have been obvious. Glad it's working.

0 Karma
Get Updates on the Splunk Community!

Index This | What is broken 80% of the time by February?

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

Unlock Faster Time-to-Value on Edge and Ingest Processor with New SPL2 Pipeline ...

Hello Splunk Community,   We're thrilled to share an exciting update that will help you manage your data more ...

Splunk MCP & Agentic AI: Machine Data Without Limits

Discover how the Splunk Model Context Protocol (MCP) Server can revolutionize the way your organization uses ...