c# - 使用 List<string> 替换字符串

标签 c# .net regex string replace

我有一个我想忽略的单词列表:

public List<String> ignoreList = new List<String>()
        {
            "North",
            "South",
            "East",
            "West"
        };

对于给定的字符串,比如 "14th Avenue North" 我希望能够删除“North”部分,所以基本上是一个返回 "14th Avenue " 调用时。

我觉得我应该可以通过混合使用 LINQ、正则表达式和替换来完成某些事情,但我就是想不通。

更大的图景是,我正在尝试编写一个地址匹配算法。在使用 Levenshtein 算法评估相似度之前,我想过滤掉“街道”、“北方”、“大道”等词。

最佳答案

这个怎么样:

string.Join(" ", text.Split().Where(w => !ignoreList.Contains(w)));

或对于 .Net 3:

string.Join(" ", text.Split().Where(w => !ignoreList.Contains(w)).ToArray());

请注意,此方法将字符串拆分为单个单词,因此它只会删除整个单词。这样它就可以正常处理 Northampton Way #123string.Replace 无法处理的地址。

关于c# - 使用 List<string> 替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3712317/

相关文章:

python - 具有重复组的正则表达式

javascript - 仅允许数字和数字之间的单个连字符

c# - 如何在 WPF 中创建带标题和排序的多列 TreeView?

c# - Microsoft Identity 和 Identity Server 4 流程关系

.net - IIS 8.5 中的压缩不成功,显示 ALREADY_CONTENT_ENCODING

.net - 合并程序集的最佳实践?

php - 正则表达式匹配 % 之间的字符串

c# - 如何在 Linux 终端上编译 C# 代码?

c# - 单击 [C#] 修改图片框

.net - DisplayMemberPath 连接