从具有下一个内容的文件中读取字符串:
select 1 from dual;
select 2 from dual;
select 3 from dual;
我想使用下一个正则表达式提取每个选择语句:
Regex.Split(sqlS, @";\s+\n")
结果数组包含所有选择,但最后一个数组末尾有分号,这是我想避免的。我希望能够分割包含许多选择的文本,每个选择都以分号结尾。每个选择都从新行开始。
最佳答案
在用正则表达式分割之前,从字符串末尾修剪 ;
(我认为 \s*
会更好,即使行结尾不是 CRLF) :
Regex.Split( sqlS.TrimEnd(new[] {';'}), @";\s*\n" )
请参阅C# demo :
var text = @"select 1 from dual;
select 2 from dual;
select 3 from dual;";
var output = Regex.Split( text.TrimEnd(new[] {';'}), @";\s*\n" );
foreach (var s in output)
{
Console.WriteLine(s);
}
输出:
select 1 from dual
select 2 from dual
select 3 from dual
关于c# - 将文本拆分为选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69645657/