Splunk Search
Highlighted

I would like to run a regex search to find two words no more the six words apart

Explorer

Is this string anywhere near where I need to be to find word1 and word2 no more than 6 words apart in the field interaction.content:

interaction.content word1\W+(?:\w+\W+){1,6}?word2

Any help much appreciated

Tags (2)
Highlighted

Re: I would like to run a regex search to find two words no more the six words apart

SplunkTrust
SplunkTrust

How is "word" defined in your context?

Got Sample data?

What's not working in your own solution?

0 Karma
Highlighted

Re: I would like to run a regex search to find two words no more the six words apart

Explorer

Hi Martin, Thanks for offering your help. By researching and playing with http://www.regexr.com/ I have found my answer and by working more with Regexr tool I have found answers to a lot more questions.

This is my solution:

index="main" interaction.type=twitter | regex interaction.content="((word1)\W+(?:\w+\W+){1,8}?(word2)W)" 

View solution in original post

Highlighted

Re: I would like to run a regex search to find two words no more the six words apart

Explorer

Correction - for some reason the backslash did't show above:

index="barclays" interaction.type=twitter | regex interaction.content="((word1)\W+(?:\w+\W+){1,8}?(word2)\W)"

Highlighted

Re: I would like to run a regex search to find two words no more the six words apart

Engager

The following regex may be more than you need, but has a few extra facets:

  1. Matches the two words in either order.
  2. Matches the words when they are adjacent.
  3. Uses word boundary anchors for matches at the beginning or end of the field.

    index="main" interaction.type=twitter | regex interaction.content="(?:\bword1\b\W(?:\w+\W+){0,6}?\bword2\b|\bword2\b\W(?:\w+\W+){0,6}?\bword1\b)"
    Hope it's useful.

Barry