c# - 将文本拆分为选择

标签 c# regex

从具有下一个内容的文件中读取字符串:

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/

相关文章:

regex - 如何使用 Perl 进行不精确的字符串比较?

java - 交换单词的正则表达式

c# - 最小起订量验证 : Expected invocation on the mock at least once, 失败异常但从未执行

c# - 使用 Web API 对 GET 请求进行模型绑定(bind)?

c# - HASP 供应商代码是否应该加密/混淆?

c# - Azure - 以编程方式创建存储帐户

c# - 在 Windows 应用程序窗体中调用 Web 服务

r - 测试字符是否在字符串中

javascript - 从字符串创建有效 ID 的函数。正则表达式

ruby-on-rails - 忽略部分正则表达式的大小写