This is my regex :
Test Name\","value":"(?.*)},{"key"
and my test string is :
{"key":"Test Name","value":"GET:Corp Ping Test"},{"key":"URL","value"
Basically i want to extract this set "GET:Corp Ping Test" , splunk doesnt extract anything in
@macadminrohit you need to escape the double quotes inside rex
command using backslash. Try the following if rex needs to be applied on _raw data
<yourBaseSearch>
| rex ",\"value\":\"(?<value>[^\"]+)\"\}\,"
Following is a run anywhere search based on code snippet and clarification provided.
| makeresults
| eval _raw="{\"key\":\"Test Name\",\"value\":\"GET:Corp Ping Test\"},{\"key\":\"URL\",\"value\""
| rex ",\"value\":\"(?<value>[^\"]+)\"\}\,"
Please try out and confirm.
PS: Use the code button (101010
or shortcut Ctrl+K
) on Splunk Answers for posting code, SPL, data to ensure that special characters do not escape. Alternatively you can add four spaces before each line of code/SPL/data
.
I think you are missing a name for your capture group. Try this:
Test Name\","value":"(?<myfield>.*)"},{"key"
I wasn't sure if you wanted the quote at the end so I removed it as well.
i missed that in my question, but actually was there in regex. I missed to add \ to mask the double quotes.
@macadminrohit you need to escape the double quotes inside rex
command using backslash. Try the following if rex needs to be applied on _raw data
<yourBaseSearch>
| rex ",\"value\":\"(?<value>[^\"]+)\"\}\,"
Following is a run anywhere search based on code snippet and clarification provided.
| makeresults
| eval _raw="{\"key\":\"Test Name\",\"value\":\"GET:Corp Ping Test\"},{\"key\":\"URL\",\"value\""
| rex ",\"value\":\"(?<value>[^\"]+)\"\}\,"
Please try out and confirm.
PS: Use the code button (101010
or shortcut Ctrl+K
) on Splunk Answers for posting code, SPL, data to ensure that special characters do not escape. Alternatively you can add four spaces before each line of code/SPL/data
.
Thanks Niket. It works like a charm 🙂