Splunk Search

Replace Eval Function using Regex

Substance82
Path Finder

When using regex how can I take a field formatted as "0012-4250" and only show the 1st and lat 3 digits? I tried the following in which maintains the original output:

| eval AcctCode = replace(AcctCode,"(\d{4}-)(\d{4})","\1\2")
Labels (2)
Tags (1)
0 Karma
1 Solution

Substance82
Path Finder

Nevermind All.  

 

By some miracle I figured it out!

| eval ProdCode = replace(ProdCode,"^(\d)\d{3}-\d(\d{3})","\1xxx-x\2")

View solution in original post

Substance82
Path Finder

Nevermind All.  

 

By some miracle I figured it out!

| eval ProdCode = replace(ProdCode,"^(\d)\d{3}-\d(\d{3})","\1xxx-x\2")

richgalloway
SplunkTrust
SplunkTrust

The current regex takes the first 4 digits and the last 4 digits and then puts them back together, which is why the result does not change.  Try this, which takes the first and last 3 digits and puts them together.

| rex field=AcctCode mode=sed "s/(\d{3})\d-\d(\d{3})/\1\2/"

 

---
If this reply helps you, Karma would be appreciated.
0 Karma

Substance82
Path Finder

Hi. 

 

Your reply is greatly appreciated, but I must use the eval command to achieve my results. Do you have an eval command solution?

 

0 Karma
Get Updates on the Splunk Community!

Developer Spotlight with Paul Stout

Welcome to our very first developer spotlight release series where we'll feature some awesome Splunk ...

Preparing your Splunk Environment for OpenSSL3

The Splunk platform will transition to OpenSSL version 3 in a future release. Actions are required to prepare ...

Deprecation of Splunk Observability Kubernetes “Classic Navigator” UI starting ...

Access to Splunk Observability Kubernetes “Classic Navigator” UI will no longer be available starting January ...