请告诉我问题是什么c#regex.split()

时间:2010-07-22 17:46:19

标签: c# regex

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

中的字符串相同

请帮忙

3 个答案:

答案 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(RegexString.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