私は正規表現が初めてで、これまで読んだだけでは十分に理解できませんでした。私がやろうとしているのは、SQL クエリから行数の出力を抽出することです。たとえば、以下の例のいずれかが出力として表示される場合、「(」の左側の値を取得したいので、「0」、「92」、またはその他の数値を取得します。
そこにいる正規表現の専門家が私を助けてくれませんか!
キャプチャされる出力は、コマンド ラインから .sql ファイルを実行したものです。
データベース コンテキストを「mydb」に変更しました。----------- 0(影響を受ける行は 1 行)
データベース コンテキストを「mydb」に変更しました。----------- 92(影響を受ける1行)
部分的に機能しているコードは次のとおりです。トリミングできる先頭のスペースを含む行数を取得しています...これが最適なコードかどうかはわかりません。
Process execQuery = new Process();
string output = "";
string argumentsToPass = "-S myhost -d mydb -i + sqlFileToExecute;
execQuery.StartInfo.UseShellExecute = false;
execQuery.StartInfo.RedirectStandardOutput = true;
execQuery.StartInfo.FileName = "sqlcmd";
execQuery.StartInfo.Arguments = argumentsToPass;
execQuery.Start();
execQuery.WaitForExit();
output = execQuery.StandardOutput.ReadToEnd();
Match match = Regex.Match(output, @"\s+\d+");