string temp_constraint = row["Constraint_Name"].ToString();
string split_string = "FK_"+tableName+"_";
string[] words = Regex.Split(temp_constraint, split_string);
我正在尝试使用另一个字符串拆分字符串。
temp_constraint = FK_ss_foo_ss_fee
split_string = FK_ss_foo_
但它返回一个单维数组,其字符串与temp_constraint
中的字符串相同请帮忙
答案 0 :(得分:1)
您应该使用String.Split代替
string[] words =
temp_constraint.Split(new []{split_string}, StringSplitOptions.None);
答案 1 :(得分:1)
您的拆分操作适用于我:
string temp_constraint = "FK_ss_foo_ss_fee";
string split_string = "FK_ss_foo_";
string[] words = Regex.Split(temp_constraint, split_string);
foreach (string word in words)
{
Console.WriteLine(">{0}<", word);
}
输出:
>< >ss_fee<
我认为问题在于您的变量未设置为您认为的变量。您需要进行调试才能在程序的其他位置找到错误。
我也会避免使用Split(Regex
和String.Split
)。你并没有真正拆分输入 - 你从一开始就删除了一个字符串。拆分可能并不总能做到你想要的。想象一下,如果你有一个如下的外键:
FK_ss_foo_ss_fee_FK_ss_foo_ss_bee
您希望得到ss_fee_FK_ss_foo_ss_bee
,但拆分会给您ss_fee_
和ss_bee
。这是一个人为的例子,但它确实表明你所做的不是分裂。
答案 2 :(得分:0)
string split使用字符数组来分割文本,并按每个字符进行拆分,这通常不是理想的。
以下文章介绍了如何按整个单词分割文字
http://www.bytechaser.com/en/functions/ufgr7wkpwf/split-text-by-words-and-not-character-arrays.aspx