事前に警告しておきますが、私の正規表現の理解は非常に限られています (何年にもわたって正規表現を習得するために最善を尽くしてきましたが、正直なところ、正規表現は私を怖がらせるだけだと思います.)
次の文字列があるとします。
string keyValues = "CustomerId=1||OrderId=12||UserId=a1dcd568-f129-419b-b51e-be2dbb67de0f"
この文字列は、ユーザー定義の文字列 (この場合は||
) (例: key1=value1||key2=value2
) で区切られたキーと値のペアを表します。この文字列からキーを抽出して配列に格納しようとしています。その配列は次のようになります。
{"CustomerId", "OrderId", "UserId"}
私が考えることができる最良のオプションは、正規表現を使用することです (誰かがより良い解決策を持っている場合は、共有してください)。これが私がやろうとしていることです:
string delimiter = "||";
string[] keys = Regex.Split(keyValues, "=.*" + delimiter);
私が間違っているかもしれませんが、私が理解しているように、正規表現は、 で始まり で=
終わる文字列を検索することになっていますdelimiter
。これらの位置で文字列が分割され、元のキーが残りますが、代わりにキー配列は次のようになります。
{"", "C", "u", "s", "t", "o", "m", "e", "r", "I", "d", "", "", ...}
ご覧のとおり、=value||
パーツが剥がれています。誰が私が間違っているのか教えてもらえますか?
編集
私の場合、区切り文字||
は変数です。への参照を に置き換えることができると思ったので、これについては言及しませんでし||
たdelimiter
。与えられた回答の大部分から、それが重要な詳細であることがわかりました。