正直に言うと、より高度な、または長い正規表現になると、私は少し迷っています。クエリパラメータの値と名前を照合して取得する必要があるクエリ文字列があります。私にとっての難しさは、値が異なる値になる可能性があり、現在、4つの異なるクエリパラメータしかないことです。クエリ文字列の例を次に示します。
foo title:"Foo Bar" -title:other author: (mitchell* OR mike) from:2012-01-01 to: 2012-06-01
クエリパラメータは、title、author、from、toです。3つの異なる値は、二重引用符で囲まれた「Foo Bar」内にあり、括弧(mitchell *またはmike)または単一の値2012-01-01などで囲まれています。コロンの後にオプションのスペースもあることに注意してください。各パラメータ名の前に+または-を付けることもできます-title。タイトルと作成者の値にはワイルドカードを使用できます。
私は現在、値の内容を知るために解析(mitchell *またはmike)する必要がなく、全体として表示したいので、値を解析することに興味がありません。
正規表現を使用してこの文字列を解析し、それに付随するパラメータ名の値を取得するにはどうすればよいですか?
私は次のような結果を扱うことができます:
['title:"Foo Bar"', '-title:other', 'author: (mitchell* OR mike)', 'from:2012-01-01', 'to:2012-06-01']
最初にfooのようなパラメータ名がない値(文字列のどこにあってもかまいません)について心配する必要はありません。パラメータ名と値を取得するだけです。