以下の文字列から次のような名前と値のペアを与える正規表現はありますか?
statuscode = 179640000
new_Approved = 179640002
から:
&$filter=statuscode/Value eq 179640000 and new_Approved/Value eq 179640000
サンプルプログラム:
public static void Main()
{
string src = "&$filter=statuscode/Value eq 179640000 and new_Approved/Value eq 179640000";
Regex regex = new Regex(@"(\w*)/Value eq (\w*)");
foreach (Match m in regex.Matches(src))
{
foreach (Group g in m.Groups)
{
Console.WriteLine(g.Value);
}
}
}
次の出力が得られます
statuscode/Value eq 179640000
statuscode
179640000
new_Approved/Value eq 179640000
new_Approved
179640000
Press any key to continue . . .
試合の各グループにあるものは次のとおりです。
これは、すべての名前と値が英数字と'_'
であると想定しています。また、ソース文字列が持つ他のカーブボールがないことも前提としています。
^&filter=({[0-9a-zA-Z]+}/Value eq {[0-9a-zA-Z]+})( and )?)$
それは一般的なテンプレートとして機能すると思います。使用している正規表現エンジンで動作するように、構文を少し変更する必要があります。