从c#中的字符串中拆分出字符串

时间:2017-06-13 06:57:07

标签: c# regex string

我想从用户提供的搜索字符串中删除澳大利亚邮政编码。

澳大利亚邮政编码是 4位数字,格式为'0000' - '9999'

用户应该可以输入"Searchterm 2000 3000",字符串20003000应该分隔成一个单独的变量,以便在后端我可以针对搜索过滤邮政编码术语

我可以在正则表达式匹配上做一个foreach:

foreach (var match in Regex.Matches(str, @"<not sure what the regex entry is>"))

但是,如何从字符串中删除这些匹配项,以便我留下搜索字词? (可以是多个单词

2 个答案:

答案 0 :(得分:6)

我建议使用正则表达式(提取4位数字)和 Linq (组织它们):

 string source = "Searchterm 2000 3000";

 // "2000 - 3000"
 string result = string.Join(" - ", Regex
   .Matches(source, "[0-9]{4}")
   .OfType<Match>()
   .Select(match => match.Value)
   .Take(2));  

如果您想要将分开的分开,只需删除string.Join

 // parts[0] == 2000; parts[1] == 3000
 string[] parts = Regex
   .Matches(source, "[0-9]{4}")
   .OfType<Match>()
   .Select(match => match.Value)
   .Take(2)
   .ToArray();  

答案 1 :(得分:0)

你可以使用string.Split来获取字符串数组,例如

"Searchterm 2000 3000".Split(' ');

将返回以下数组:[“Searchterm”,“2000”,“3000”]