I'm a little lost when it comes to more advanced or lengthy Regex to be honest. I have a query string that I need to match and get the values and the name of query params. The difficulty for me is that the value can be different values and there are, currently, only 4 different query params. Here is an example query string:
foo title:"Foo Bar" -title:other author: (mitchell* OR mike) from:2012-01-01 to: 2012-06-01
The query params are title, author, from and to. The three different values are within double-quotes "Foo Bar", surrounded with parenthesis (mitchell* OR mike) or a single value 2012-01-01 or other. Notice there is an optional space after the colon also. There also could be a + or - before each param name, -title. The title and author values can have the wildcard.
I'm currently not interested in parsing the value like I don't need to parse (mitchell* or mike) to know what's in it, just want to display it as a whole.
How can I, with Regex, parse this string to get the value to the param name that goes along with it?
I can deal with result like:
['title:"Foo Bar"', '-title:other', 'author: (mitchell* OR mike)', 'from:2012-01-01', 'to:2012-06-01']
I do not need to worry about the value that doesn't have a param name like the foo at the beginning (which could be anywhere in the string), just need to get the param name and value.