【发布时间】:2016-05-11 14:09:26
【问题描述】:
我将文本文件中的所有行都变成了这样的 var:
var text = File.ReadAllLines(pathToFile);
我现在需要用这个分隔符“/”来分割该文本。 但是该文本可以在任何地方包含“/”,因为它填充了 SQL 语句,所以我只需要在“/”在该行中“单独”时进行拆分,这样我就不会意外拆分命令。
我认为我应该使用正则表达式?我对他们不方便?
有什么方法可以让text.Split() 满足我的需要吗?
这是文件:
ALTER TABLE ORC
ADD MercadoInt VARCHAR2(1)
ADD Coef_KrMo NUMBER(20,10)
ADD Coef_KrMt NUMBER(20,10)
ADD Coef_KrEq NUMBER(20,10)
ADD Coef_KrSb NUMBER(20,10)
ADD Coef_KrGb NUMBER(20,10)
ADD Coef_MDEmp NUMBER(20,10)
ADD Coef_MDLoc NUMBER(20,10)
ADD Abrv_MDLoc VARCHAR2(10)
ADD Dsc_MDLoc VARCHAR2(50)
ADD Arred_MDLoc VARCHAR2(1)
ADD Arred_NDecs NUMBER(1)
/
UPDATE Orc set MercadoInt='N', Coef_KrMo=1, Coef_KrMt=1, Coef_KrEq=1, Coef_KrSb=1, Coef_KrGb=1, Coef_MDEmp=1, Coef_MDLoc=1, Abrv_MDLoc='', Dsc_MDLoc='', Arred_MDLoc='N', Arred_NDecs=0 WHERE MercadoInt IS NULL
/
输出应该是一个只包含如下命令的列表:
ALTER TABLE ORC
ADD MercadoInt VARCHAR2(1)
ADD Coef_KrMo NUMBER(20,10)
ADD Coef_KrMt NUMBER(20,10)
ADD Coef_KrEq NUMBER(20,10)
ADD Coef_KrSb NUMBER(20,10)
ADD Coef_KrGb NUMBER(20,10)
ADD Coef_MDEmp NUMBER(20,10)
ADD Coef_MDLoc NUMBER(20,10)
ADD Abrv_MDLoc VARCHAR2(10)
ADD Dsc_MDLoc VARCHAR2(50)
ADD Arred_MDLoc VARCHAR2(1)
ADD Arred_NDecs NUMBER(1)
UPDATE Orc set MercadoInt='N', Coef_KrMo=1, Coef_KrMt=1, Coef_KrEq=1, Coef_KrSb=1, Coef_KrGb=1, Coef_MDEmp=1, Coef_MDLoc=1, Abrv_MDLoc='', Dsc_MDLoc='', Arred_MDLoc='N', Arred_NDecs=0 WHERE MercadoInt IS NULL
注意:
当我在行只包含'/'时说拆分是因为如果语句包含'/'它也会将它分开,这是不可能的,所以我只能在行只包含'/'时拆分它
【问题讨论】:
-
显示其中一些行以及至少其中之一的所需结果
-
不清楚你的意思是什么只有当'/'它是“单独”时才拆分你在内存中有一个行数组。如果一行只包含分隔符你想分割什么?
-
查看
Regex.Split(),您可以在其中为 alone / 定义模式 -
什么sql命令包含
/? -
@Steve 通过示例查看更新的答案