Hello. I want to extract strings anything comes before "|" .
ex.
Math |
Math | Science | Math
English | Math
Science | Science | Science | Science
Expected result:
Math
Math
English
Science
Below search did not worked.
my search | stats count by Subject="(?<Subject>[^\|]+)"
Please help me out.
Hi @marinella26 ,
you can use:
| rex "^(?<field>[^\|]+)"
that you can test at https://regex101.com/r/6Ynayk/1
Ciao.
Giuseppe
Hi @marinella26 ,
you can use:
| rex "^(?<field>[^\|]+)"
that you can test at https://regex101.com/r/6Ynayk/1
Ciao.
Giuseppe
Read rex. stats command doesn't have a function to do extraction.
Meanwhile, your sample code suggests that Splunk gives you a field named Subject and you are trying to get some info from this field. If this is the case, there is a slightly more efficient way using split function:
my search
| Subject = mvindex(split(Subject, "|"), 0)
| stats count by Subject
Another way equivalent to rex is to use replace function.