パターンを取得できないように見えるC#
領域を含む SQL スクリプトを分割するために使用しようとしています。Regex.Split()
以下を達成するための最良のソリューションになります。
入力文字列 (これは 100'000* であるため、私の方法の遅さです)
--#region someregioncomment
aaaa
bbbb
--#endregion
各戻り値は\r\n
.
出力Dictionary<string, string>
鍵:
--#region someregioncomment
価値:
aaaa\r\nbbbb
現時点で私はこれをやっています:
Dictionary<string, string> regionValues = new Dictionary<string, string>();
using (StringReader sr = new StringReader(SSBS))
{
string strCurrentRegion = "";
string strCurrentRegionContents = "";
while (sr.Peek() != -1)
{
string strCurrentLine = sr.ReadLine();
if (strCurrentLine.Contains("--#region"))
{
strCurrentRegion = strCurrentLine;
}
if (string.IsNullOrEmpty(strCurrentRegion))
{
continue;
}
else if (strCurrentLine.Contains("--#endregion"))
{
regionValues.Add(strCurrentRegion, strCurrentRegionContents);
strCurrentRegion = "";
}
else
{
strCurrentRegionContents += ("\r\n" + strCurrentLine);
}
}
}
Regex
しかし、これはパターンと組み合わせることで達成できると感じましたRegex.Split()
-パターンがどのように見えるべきかの要点を理解できないようです...
私は試みました:
(--#region.*?)\n
(--#region)\w*
私はそれを得ることができないようです!私の希望する出力のための助けをいただければ幸いです:)
ありがとう。