【发布时间】:2021-12-07 06:07:39
【问题描述】:
从具有下一个内容的文件中读取字符串:
select 1 from dual;
select 2 from dual;
select 3 from dual;
我想使用下一个正则表达式提取每个选择语句:
Regex.Split(sqlS, @";\s+\n")
结果数组包含所有选择,但最后一个在末尾有分号,这是我想要避免的。我希望能够拆分包含许多选择的文本,每个选择都以分号结尾。每个选择都从新行开始。
【问题讨论】:
-
File.ReadAllLines().Select(x => x.Trim(';'));怎么样 -
或者,trimEnd 之前的字符串:
Regex.Split( sqlS.TrimEnd(new[] {';'}), @";\s*\n" ). -
为什么不用
string.Split和';'作为分离器?此外,如果您要按原样运行 3 个查询,为什么不在每个查询的末尾加上分号,这不会影响任何事情(IIRC)。 -
如果选择在某种意义上是您的“数据”,我会将它们放在 XML 或 JSON 中,这样您就可以简单地将它们反序列化为数据结构(可能是数组或列表)。无需处理它们的实际结构。
-
我不能改变输入字符串的格式可以这么说。但是 xml 和 json 的想法对于下一个版本或重构我编写的应用程序来说是一个很好的想法。谢谢