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

请告诉我c#regex.split()有什么问题,c#,regex,C#,Regex,我正在尝试使用另一个字符串拆分一个字符串 string temp_constraint = row["Constraint_Name"].ToString(); string split_string = "FK_"+tableName+"_"; string[] words = Regex.Split(temp_constraint, split_string); 但它返回一个一维数组,其字符串与temp_约束中的字符串相同 请帮助您应该改用 您的拆分操作对我来说很好: string[] w

我正在尝试使用另一个字符串拆分一个字符串

string temp_constraint = row["Constraint_Name"].ToString();
string split_string = "FK_"+tableName+"_";
string[] words = Regex.Split(temp_constraint, split_string);
但它返回一个一维数组,其字符串与temp_约束中的字符串相同

请帮助

您应该改用


您的拆分操作对我来说很好:

string[] words = 
    temp_constraint.Split(new []{split_string}, StringSplitOptions.None);

你想得到
ss_fee\u FK\u ss_foo\u ss_bee
但是split会给你
ss_fee
ss_bee
。这是一个人为的例子,但它确实证明了您所做的不是拆分。

字符串拆分使用字符数组拆分文本,并按每个字符进行拆分,这通常并不理想

下面的文章展示了如何将文本拆分为一个完整的单词


你想得到什么?我同意Darin的观点。谢谢你指出Darin,我差点回答了你的问题accident@Henk现在,当我打开个人资料时,有许多公认的答案。奇怪。我猜有些缓存问题,或者OP真的解决了它:-)问题发生在split_string=“FK_”+tableName+”;我使用了一个断点来检查tableName的值,它正好显示了我想要的内容。我不明白原因。当我使用静态字符串时,拆分正确发生。但当我使用variable@Yash:您的变量可能包含的符号与您认为的符号不同。也许是一个额外的空间。问题很可能出在“tableName”的内容上。即使您建议的方法也不起作用。我也试过了。当我使用一个变量来构造拆分字符串变量时,我不知道为什么它不起作用。相反,我使用了string.replace(splitstring,“”);它工作正常,符合我的目的。
string[] words = 
    temp_constraint.Split(new []{split_string}, StringSplitOptions.None);
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<
FK_ss_foo_ss_fee_FK_ss_foo_ss_bee