我正在尝试使用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*
我只是似乎无法得到它!对我想要的输出的任何帮助表示赞赏:)
谢谢。