gpt4 book ai didi

c# - 用多个字符串数组拆分字符串

转载 作者:太空宇宙 更新时间:2023-11-03 20:54:40 24 4
gpt4 key购买 nike

我有一个记录列表,这些记录的地址在邮寄列表中没有分开。我想按街道地址和城市名称拆分记录。

对于第一个问题,如何按街道类型拆分记录,例如“St”、“Drive”、“Dr”、“Trail”等

在此示例中,String.Split“吃掉”了“Ct”。

 string source1 = "Cxxx, Kxxx,9999 Valleycrest Ct Allen TX 75002 ,,,,,,,,,";
// string source2= "Cxxx, Mxxx Exxx,9999 Chesterwood Dr Little Elm, TX 75068 ,,,,,,,,,";

string[] stringSeparators = new string[] { "Drive", "St", "Dr", "Trail","Ct" };
string[] result;

// ...
result = source1.Split(stringSeparators, StringSplitOptions.None);

foreach (string s in result)
{
Console.Write("'{0}' ", String.IsNullOrEmpty(s) ? "<>" : s);
}

//Objective
// "Cxxx, Kxxx,9999 Valleycrest Ct, Allen, TX, 75002 ,,,,,,,,,"

这是列表的示例。

"Pxxx, Sxxx","9999 Southgate Dr McKinney, TX 75070 ",,,,,,,,,
"Hxxxx, Mxxxx","9999 Glendale Ct Allen, TX 75013 ",,,,,,,,,
"Axxxx, Nxxxxx","99999 Balez Drive Frisco, TX 75035 ",,,,,,,,,
"Sxxx, Dxxxx","999 Pine Trail Allen, TX 75002 ",,,,,,,,,
"Vxxx, Sxxxx","9999 Richmond Ave Dallas, TX 75206 ",,,,,,,,,

我的列表不包括“St Louis”,所以这不是问题。

为了简化我的问题。

如果我有以下字符串:

“Cxxx, Kxxx,9999 Valleycrest Ct Allen TX 75002”

我想拆分以下字符串 "Ct, Dr, Ave"

我想要下面的结果[]

result[0]="Cxxx, Kxxx,9999 Valleycrest Ct"结果[1]="艾伦 TX 75002"

因为分隔符字符串不包含在返回数组的元素中,所以我希望它们不被删除。我还缺少其他选项吗?

换句话说,不要删除“Ct”“Dr”或我找到/使用的任何分隔符。

谢谢

最佳答案

你可以试试这个正则表达式:

@"(?<first>.+(?:Drive|St|Dr|Trail|Ct))(?<second>[^""]*)"

现在您可以访问 Capture.Groups["first"] 和 Capture.Groups["second];但是,在您的示例中,这没有引号。

顺便说一句:您可以在这里尝试一下:RegExBuilder

编辑:

(?<first>

将创建一个命名组。

.+将匹配任何字符一次或多次。

(?:

将创建一个非捕获组,它匹配 | 中的任何单词,意思是“或”“第二个”命名组将匹配任何不是引号的字符(零个或多个字符)。

关于c# - 用多个字符串数组拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51734692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com