C# 用于删除字符串的所有重复并分配给数组的正则表达式

C# 用于删除字符串的所有重复并分配给数组的正则表达式,c#,.net,regex,arrays,C#,.net,Regex,Arrays,我的文件中有以下文本: “车间订单001”、“车间订单002”、“车间订单003”、“车间订单004”、“车间订单005” 现在,我通过读取文件并通过拆分分配给数组来获取值: String orderValue = ""; string[] orderArray; orderValue = File.ReadAllText(@"C:\File.txt"); orderArray = orderValue.Split(','); 但我得到的值如下: 我需要数组中的值为“ORDER001

我的文件中有以下文本:

“车间订单001”、“车间订单002”、“车间订单003”、“车间订单004”、“车间订单005”

现在,我通过读取文件并通过拆分分配给数组来获取值:

 String orderValue = "";
 string[] orderArray;
 orderValue = File.ReadAllText(@"C:\File.txt");
 orderArray = orderValue.Split(',');
但我得到的值如下:

我需要数组中的值为“ORDER001”、“ORDER002”、“ORDER003”

您看到的
\“
是由调试器可视化工具为字符串添加的(因为引号是特殊字符,需要转义以避免混淆),不要担心它们不在
orderArray

如果您也要删除引号,则数组将:

SHOP_ORDER001 SHOP_ORDER002 ... 顺便说一句,
String.Split
不是很健壮,除非您确定每个字段都不会包含逗号

编辑
如果您需要删除
SHOP\uuu
只需写下以下内容,即可回答您在评论中添加的问题:

var orderArray = orderValue.Split(',')
    .Select(x => x.Trim('"').Substring("SHOP_".Length));
使用这个正则表达式

var res = Regex.Matches(orderValue, @"(?<=""SHOP_)[^""]+?(?="")");

var res=Regex.Matches(orderValue,@)(?这是个愚蠢的问题,但为什么不这么做呢

.Replace("SHOP_", "");
你可以用这个:

string[] result = Regex.Split(orderValue, "(?:^\"SHOP_)|(?:\",\"SHOP_)|(?:\"$)");

但是,您必须跳过结果数组中的第一个和最后一个项目,因为它们总是空字符串。

在我看来一切正常…``是转义字符,因此,
“\'xx\”
导致输出
“xxx”
我认为这是不可能的,因为这是一个转义字符。但是当你将它分配给文本框时,例如text,它将是你想要的。你能解释一下为什么需要它吗?@StephanBauer,也想删除SHOP\u好的,一定没有满足这个要求:)这是一个很好的答案。您不需要正则表达式来删除一个已知的和放置的字符串。@MichaelPerrenoud Tnx,在这种情况下,一个简单的子字符串将略快于正则表达式(当然LINQ将浪费任何性能增益,但关键是乍看起来它应该比正则表达式更清晰)我认为
Replace
而不是
Substring
在这里会更好。这种使用
Substring
的错误印象是它删除了“SHOP”从一开始,不管前5个字符是什么,它实际上只是删除它们。@juharr字段格式是固定的,SHOP_uuu将始终位于字符串的开头,这就是我们不需要正则表达式的原因(在变化的情况下,我也更喜欢正则表达式).Replace将删除字符串,无论它位于何处。@Adriano如果您可以假设格式在开始时始终具有SHOP_u,那么假设它仅在开始时存在,是否有那么大的拉伸?因为您仍然具有"在每个值的开始和结束处。@MartinBrown我相信他想要引号。他只是认为似乎有双引号。问题的下一部分是删除SHOP_@happygillmore,因为我认为您对引号的理解是错误的,并且您的答案没有以问题中也要求的数组结束。因此,问题已经存在在研究了如何使用
Split
创建数组后,他的问题显然是针对删除SHOP_uuu文本。他是否希望引用,这里至少有一个人不清楚,因此他有责任澄清。下一票不公平。如果你继续拆分字符串,即.Replace(“SHOP_uuu”).Split(“,”)您将处理字符串两次,这不是很有效。
string[] result = Regex.Split(orderValue, "(?:^\"SHOP_)|(?:\",\"SHOP_)|(?:\"$)");