我想从用户提供的搜索字符串中删除澳大利亚邮政编码。
澳大利亚邮政编码是 4位数字,格式为'0000' - '9999'
。
用户应该可以输入"Searchterm 2000 3000"
,字符串2000
和3000
应该分隔成一个单独的变量,以便在后端我可以针对搜索过滤邮政编码术语
我可以在正则表达式匹配上做一个foreach:
foreach (var match in Regex.Matches(str, @"<not sure what the regex entry is>"))
但是,如何从字符串中删除这些匹配项,以便我留下搜索字词? (可以是多个单词)
答案 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”]