Splunk Search

Field extractions what is the difference between (?P.+) and (?.+)?

chris
Motivator

When I extract Fields from a source/sourcetype through Splunk web using the "Extract Fields" context menu on an event. Splunk seems to generate a regex that conatins an uppercase P before the fieldname. Does anyone know what this does?

Are those equivalent?

(?P<field_name>.+) and (?<field_name>.+)?

Thanks

Chris

Tags (3)
0 Karma
1 Solution

jonuwz
Influencer

For capturing groups - there is no real difference

given the string : "<data>stuff</data>"

You can do this

| rex "<(?<node>[^>]+)>(?<text>.*?)</(?P=node)>"

This : (?P=node) is a string replacement for 'data' which was previously captured in the group named 'node'

So we're making sure that in the xml snippet, the closing tag contains the same tag that opened the xml node.

In non-jargon...

node = everything betwenn the < and the next >

text = everything between <node> and the next instance of </node> (whatever string 'node' might be)

View solution in original post

jonuwz
Influencer

For capturing groups - there is no real difference

given the string : "<data>stuff</data>"

You can do this

| rex "<(?<node>[^>]+)>(?<text>.*?)</(?P=node)>"

This : (?P=node) is a string replacement for 'data' which was previously captured in the group named 'node'

So we're making sure that in the xml snippet, the closing tag contains the same tag that opened the xml node.

In non-jargon...

node = everything betwenn the < and the next >

text = everything between <node> and the next instance of </node> (whatever string 'node' might be)

MarioM
Motivator

i am not sure it does anything special...outside pointing to perl or python:

(?<name>pattern) - Named group (Perl)

(?P<name>pattern) - Named group (Python)

Named groups appears to be a Python-specific extension to regex.

chris
Motivator

Makes sense

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!

SOC4Kafka - New Kafka Connector Powered by OpenTelemetry

The new SOC4Kafka connector, built on OpenTelemetry, enables the collection of Kafka messages and forwards ...

Event Series: Level up your SOC: Advancing with Splunk Enterprise Security

AI has fundamentally raised the stakes for security operations, and this three-part series is your guide to ...

Announcing Modern Navigation: A New Era of Splunk User Experience

We are excited to introduce the Modern Navigation feature in the Splunk Platform, available to both cloud and ...